Complement is a set of C++ libraries. This libraries provide multiplatform C++ framework for

Portable programming interface to build MultiThreaded (MT) applications or libraries. Hide platform-specific system calls that used for MT-programming. Provide generic C++ interfaces for MT programming. Close to POSIX threading model.
Generic interface for interprocess communication via sockets. Sockios programming interface unified with C++ standard (ISO/IEC 14882) IO streams interface. Provide easy and evident (for C++ programmer, who understand STL) interface for TCP sockets: framework both for client and server parts. Generic server implemented with use of xmt library.
StEM is a C++ framework to build application as finite state, event-driven machine. Machine correspond to set of independent objects, each with own state and state history, that may interact via events. Objects may be situated in different processes (that may be running on different hosts, connected via TCP network). Framework use asynchronous events delivery and processing.

Every node (object) has a stack of states and may react on incoming events (depends upon event processing handlers, state and states history). Behaviour of object may vary during it's life time (via change of it state).

StEM follow code reuse principles: it use xmt and sockios internal and external communication.

In contrast to similar frameworks, to build application based on StEM framework, you need only C++ compiler.

Since 1996 few projects was implemented with this libraries (it's not frozen, it under development). See Requirements.

Public Complement's Git repositories are:

To access sources you should clone one of the repository:

git clone git://

Web-view available at GitHub's repository.