GNU Common CPP Framework

From GNU Telephony


The GNU Common C++ Framework

GNU Common C++ is a portable and highly optimized class framework for writing C++ applications that need to use threads and support concurrent sychronization, and that use sockets, XML parsing, serialization, config files, thread-optimized String and data structure classes, etc. This framework offers a class foundation that hides platform differences from your C++ application so that you need not write platform specific code. GNU Common C++ has been ported to compile nativily on most platforms which support either posix threads, or on Microsoft Windows. GNU Common C++ can also be used to construct embedded applications as part of GNU Telephony Open Embedded.

This framework is used to construct application services like GNU Bayonne, as well as part of additional libraries such as the GNU Common C++ RTP Stack and the GNU ccScript engine. Other libraries related to GNU Common C++ include the stand-alone GNU_ccAudio2 framework.

Downloading and Documentation

The latest release of GNU Common C++ is 1.4.x, and may be downloaded directly from our Download Page. Related libraries, such as GNU ccRTP, GNU ccAudio2, and GNU ccScript3, may also be found there. GNU Common C++ can depend on libxml2 for xml parsing. It is also recommended to use libhoard to optimize memory allocation performance on true multi-core processors.

Online Documentation is maintained as part of the larger class framework documentation for GNU Telephony.

Current Status

The current release set, 1.4.x, is considered stable. We may add SSL socket support to the ccextras library in the near future. There are no immediate plans to introduce further features into the library, though we may make changes to improve performance and/or support additional target platforms. There had been some separate work on a new version of the Serial I/O classes, and this may also get migrated into a future release.

Support and Management

To simplify management and bug tracking for the different packages I currently maintain, I have consolidated management of Common C++, related Common C++ packages, and telephony projects including GNU Bayonne. These are being managed from GNU Telephony with a common bug tracking system. This will soon be migrated to our own bugzilla host. Current CVS is also maintained through GNU Telephony.

Related Projects

The following projects are known to use GNU Common C++: