What is Pantheios?

Version 1.0.1-beta2

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 | Tutorials | Performance | Users of Pantheios

Introduction

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

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

Languages

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.

License

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 Win32 - in principle, it should work on any operating system for which a (reasonably modern) C++ compiler exists.

Compilers

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.

STLSoft

Pantheios is dependent on the STLSoft libraries, version 1.9.1 beta 20, 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.

Note:
Although the STLSoft version is a beta, and beta-20 at that, users of Pantheios need not be concerned as to the effect on quality or stability of Pantheios when STLSoft version 1.9.1 proper is finally released. For one thing, the author of Pantheios is the author of STLSoft. Second, the only significant remaining reason for the beta status of STLSoft is the lack of preparedness of the STLSoft libraries' documentation, which has historically been decidedly lacking - Matthew has determined not to release 1.9.1 until the documentation is up to an acceptable level.

b64

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 must be downloaded and built.

Authors

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 Extended STL, volume 1. Pantheios is the best example so far of the power of both.

pantheios Library documentation © Matthew Wilson, 2006 SourceForge.net Logo