Synesis Software STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ...

What is Pantheios?

Version 1.0.1-beta208

Introduction | Languages | License | Portability and Dependencies | Authors
Pantheios Architecture : Application Layer + Core + Back-end Layer + Front-end Layer
Installing Pantheios | Building Pantheios | Linking to Pantheios | Contact & Feedback
Examples | Training | Performance | Users of Pantheios
What's with all these beta versions?


Pantheios is a diagnostic logging API library for C and C++. Its outstanding features include:

But above all else it adheres to the important principle of C programming that:


Pantheios is written in C and C++, and presents a C API along with a C++ Application Layer API.

There is a COM mapping (written in C++, using ATL and STLSoft) called pantheios.COM, which is available separately from the website.

There is a prototype pantheios.NET in use in one of Matthew's commercial projects, but it is some way from being ready for generalisation and release.

The slice structure used by the core API is deliberately binary-compatible with the slices used in the D language, so don't be too surprised to see a pantheios.D sometime in the future.


Pantheios is released under the BSD license, which basically means its free for any use, but you can't claim it's yours.

Portability and Dependencies

Pantheios works on with many compilers, is platform independent, and requires only one other library. It also provides Base-64 representation as an extension, using a third-part library, which is not required for the rest of the library to function.

Operating Systems

Although some of the stock back ends are platform-specific, Pantheios itself is a platform-independent library. It has been tested and used on both UNIX and Windows - in principle, it should work on any operating system for which a (reasonably modern) C++ compiler exists.


Pantheios is written in standard C/C++, and should be compilable with any modern C/C++ compiler that provides an implementation of the C & C++ standard libraries.

Pantheios has been built and tested with the following compilers:

If you wish to use Pantheios with a compiler not listed here, you may find the STLSoft header file will issue a #error informing you that your chosen compiler is not supported. This can be overriden by defining the pre-processor symbol _STLSOFT_FORCE_ANY_COMPILER. If you do that, your compiler will be expected to be pretty standards compliant (though nothing that's particularly out-of-this-world, such as export). If you run into any issues with using Pantheios/STLSoft with such a compiler, we'd be happy to hear from you on the STLSoft newsgroup.


Pantheios is dependent on the STLSoft libraries, version 1.9.102, or later.

STLSoft provides the following important features:

Because STLSoft is 100% header-only, there is no need to build anything in order to use STLSoft with Pantheios. Simply define the STLSOFT environment variable, as described in the STLSoft distribution.


An additional component in the Pantheios distribution is the b64 inserter class, which allows binary regions to be expressed in Base-64 form. This component requires the b64 library, which is bundled with the Pantheios distribution.


Pantheios is written by Matthew Wilson, with contributions, opinions and advice by Garth Lancaster.

The Shims concept and the Type Tunnel pattern are both fancies of Matthew's imagination, and are described in detail in Matthew's forthcoming book Breaking Up The Monolith. Pantheios is the best example so far of the power of both.

pantheios Library documentation Matthew Wilson & Synesis Software, 2006-2011 Logo