muscle  7.12
About: MUSCLE (Multi User Server Client Linking Environment) is a messaging server and networking API. The included server program ("muscled") lets its clients message each other, and/or store information in its serverside hierarchical database.
  Fossies Dox:  ("inofficial" and yet experimental doxygen-generated source code documentation)  

MUSCLE Documentation Page

The MUSCLE API provides a robust, efficient, scalable, cross-platform, client-server messaging system for network-distributed applications for Linux, MacOS/X, BSD, Windows, BeOS, and other operating systems. It can be compiled using any C++ compiler that supports C++03 or higher (although C++11 or higher is preferred) and can run under any OS with a TCP/IP stack and BSD-style sockets API.

MUSCLE allows (n) client programs (each of which may be running on a separate computer and/or under a different OS) to communicate with each other in a many-to-many message-passing style. It employs a central server to which client programs may connect or disconnect at any time (This design is similar to other client-server systems such as Quake servers, IRC servers, and Napster servers, but more general in application). In addition to the client-server system, MUSCLE contains classes to support peer-to-peer message streaming connections, as well as some handy miscellaneous utility classes, all of which are documented here.

All classes documented here should compile under most modern OS's with a modern C++ compiler. Where platform-specific code is necessary, it has been provided (inside #ifdef's) for various OS's. Templates are used throughout; exceptions are avoided in favor of error codes. The code is usable in multithreaded environments, as long as you are careful.

As distributed, the server side of the software is ready to compile and run, but to do much with it you'll want to write your own client software. Example client software can be found in the "test" subdirectory.