GNU Common C++: Portable Systems Framework
Documentation for GNU Common C++ (Common C++ 2), the portable C++ library providing cross-platform multi-threading, socket streaming, synchronization, and IPC for early GNU Telephony servers.
Superseded Framework
GNU Common C++ was superseded by GNU uCommon C++ for modern telephony servers. Preserved for legacy codebase maintenance.
§1Foundational Role in Early GNU Telephony
Before the C++11 standard introduced standardized threads (`std::thread`), mutexes, and smart pointers, writing portable, multi-threaded C++ network daemons across GNU/Linux, BSD, Solaris, and Windows was notoriously error-prone.
GNU Common C++ provided a highly cohesive, portable class framework: - Threading: `ost::Thread`, `ost::Mutex`, `ost::Semaphore`, and thread pools. - Sockets: `ost::TCPStream`, `ost::UDPSocket`, `ost::SocketService`. - Data Formats: XML DOM parsers, configuration file parsers, MIME encoding. - Memory: Shared memory segments, memory-mapped files, and thread-safe allocators.
§2Evolution into uCommon C++
As server architectures scaled and embedded VoIP hardware emerged, Common C++'s heavyweight object hierarchy and deep inheritance trees imposed unnecessary memory overhead. In 2006, David Sugar began developing GNU uCommon C++ as a streamlined, zero-overhead successor.
This page reconstructs material originally published at gnutelephony.org. It has been formatted and annotated for archival preservation.
Historical source: GNU Common C++. Reproduced or adapted under the GNU Lesser General Public License (LGPL) 2.1 or later where stated.
Historical revision date: 2001-09-10 (Revised 2010-11-21). Restored to permanent static archive in October 2026.