SolidGround is a C++ framework intending to offer everything one need to build powerful, distributed, highly-scalable, client-server applications. Its is designed and implemented for speed and power, with great interest on the ease of use by the developers.
Although in first step it will be released only for Linux, its design allows easy porting to other platforms (planned are Solaris and Windows).
Here is a list with what the framework includes:
- A system library which wraps up threads, synchronization objects, thread specific, file access, socket address, debug logging engine etc.
- Asynchronous signaling engine.
- Asynchronous TCP and UDP communication engine, single-channel and multi-channel(for easily implementing proxies and other communication nodes, e.g. chat rooms);
- Secure Socket support for the asynchronous TCP communication, using OpenSSL library(http://www.openssl.org/);
- Asynchronous multiplexed IPC (Inter Process Communication) / RPC (Remote Procedure Call) engine with keep-alive support for peer disconnection detection. The protocol allows for sending commands (of any size - one can even send file streams) to a peer process over multiplexed UDP.
- A nice serialization engine (for now only binary, non portable - used by IPC)
- A nice asynchronous ready, text protocol engine (parser and response builder) for protocols like IMAP, POP, SMTP etc.
- A file stream manager for asynchronous usage (e.g. if you want a read-only stream for a file which is locked for writing, the manager will signal you the stream when unlocked)
- A nice audit/log engine.
- Doxygen documentation.
- Lots of test applications, including a central proof of concept multi service server.
NOTES
- Please consider visiting my newly started project based on SolidGround framework: http://code.google.com/p/solidbox/.