Inti is a collection of shared libraries written in C++, designed to
meet common needs encountered by application developers on UNIX-like
systems such as Linux. The largest Inti module provides a C++ interface
for the GTK+ GUI toolkit, but Inti also contains a "base" module
suitable for nongraphical applications. The base module contains
general-purpose features, including internationalization support, a main
loop abstraction, and text-processing utility functions.

Inti is intended to be a commercial-quality package. This means that
backward compatibility is taken very seriously, and experimental or
immature interfaces will typically not be included in the library.

The Inti libraries are licensed under the GNU Lesser General Public
License, which is the same license used for GTK+ and the GNU C Library.

Relatively little of Inti's functionality is implemented in Inti
directly; instead, most of the functionality of the library resides in C
libraries such as GTK+. Inti provides an attractive, easy-to-learn C++
interface for the original libraries it depends on.

This section gives an overview of the nongraphical utility interfaces in
the base Inti library, which is required by all other Inti modules.
It also describes the standard C++ library and the UNIX interfaces
that Inti builds on.

The GNU C++ compiler comes with the
standard C++ library (also known as simply "libstdc++"),
which contains the Standard Template Library (STL). The GNU
implementation of the STL is based on the SGI implementation; it has
extensive online documentation. Of course, there
are also dozens of books available about the standard C++ library.

This manual doesn't document standard C++ features, since those are
part of the language, not part of Inti. However Inti does make
use of many standard C++ features and depends on their existence.
You should be familiar with the C++ language in order to understand
Inti.

Inti itself is not very UNIX-specific (it could be ported to
Windows fairly easily, though probably the Cygwin environment would be required because
Visual C++ has fairly limited C++ standards support compared to the
GNU compiler).

However, anyone writing a full-blown application will almost
certainly need to use some UNIX interfaces, if the application is
for UNIX platforms. You can find reference documentation online in
the form of the Single UNIX specification.

The main loop abstraction (in inti/main.h)
dramatically simplifies writing any long-running application, such
as a daemon or a graphical user interface. The main loop can
significantly reduce application complexity by hiding low-level
details such as the select() and
poll() system calls. Also, in many instances
the main loop allows you to avoid using threads, and threads can be
a major source of bugs and code complexity.