LibCXX Class Collection


Release 0.26 of LibCXX
Installation, and requirements


This is a library of C++ application classes and templates that's focused on the following areas of functionality:

  • C++ classes for implementing Linux kernel-specific interfaces, such as event, timer, and signal file descriptors, and the inotify API.

  • Templates for reference-counted objects that offer a richer set of functionality than shared_ptr. The x::ref, x::ptr, x::const_ref, and x::const_ptr templates implement semantic concepts that are analogous to the conceptual differences between a iterator and const_iterator, as well as a native pointer and a native reference, in the C++ language.

    The reference-counted object implementation is based on a virtual object superclass root, enabling proper support of multiple inheritance in the context of a reference-counted object-based framework; as well as destructor callbacks that implement useful design patterns that are frequently used in multithreaded and message-based applications.

  • Weak containers, a further extension of this reference-counted object framework, and reference-counted thread objects; as well as a number of high-level design patterns for multi-threaded applications, based on the C++11 thread library.

  • HTTP client and server classes; FTP clients; including SSL/TLS, with a reference-counted GnuTLS library classes.

  • MIME classes and templates.

  • Reading and writing XML and YAML documents.

  • Printing documents using the CUPS library.

  • Two optional subcomponents: an SQL database API, and LibCXXW, an X widget toolkit.

This is just a brief overview, see the table of contents for a more complete list of the classes and templates in this library. The Stasher object repository server uses this library; LibCXX was originally developed as part of Stasher. After generic classes and templates in Stasher exceeded the size and scope of all other classes and templates, they were separated into a standalone library, LibCXX.

LibCXX is free software, distributed under the terms of the GPL, version 3.