.. _Introduction:

*********************************************
Introduction to the GNAT Component Collection
*********************************************

The reusable library known as the GNAT Component Collection (GNATColl)
is based on one main principle: general-purpose packages
that are part of the GNAT technology should also be available to GNAT user
application code. The compiler front end, the GNAT Programming Studio (GPS)
Interactive Development Environment, and the GNAT Tracker web-based interface
all served as sources for the components.

The GNATColl components complement the predefined Ada and GNAT libraries and
deal with a range of common programming issues
including string and text processing, memory management,
and file handling. Several of the components are
especially useful in enterprise applications.

The next chapter explains how to build and install GNATColl.
The remainder of this document then describes the various components that make up
the collection:

* *Scripts*: Embedding script languages

* *Traces*: Logging information

* *Memory*: Monitoring memory usage

* *Mmap*: Reading and writing files

* *Boyer-Moore*: Searching strings

* *Paragraph filling*: Formatting text

* *Templates*: Generating text

* *Email*: Processing email messages

* *Ravenscar*: Patterns for multitasking

* *Storage Pools*: Controlling memory management

* *VFS*: Manipulating files

* *Tribooleans*: Three-state logic

* *Geometry*: Primitive geometric operations

* *Projects*: Manipulating ``gpr`` files

* *Refcount*: Reference counting

* *Config*: Parsing configuration files

* *Pools*: Controlling access to resources

* *JSON*: Handling JavaScript Object Notation

* *SQL*: Database interface

