SPServer is a server framework library written on C++ that implements the Half-Sync/Half-Async and Leader/Follower patterns. It's based on libevent in order to utilize the best I/O loop on any platform.
SPServer can simplify TCP server construction. It is a hybrid system between threaded and event-driven, and exploits the advantages of both programming models. It exposes a threaded programming style to programmers, while simultaneously using event-driven style to process network connection.
SPServer also include an embedded http server framework -- sphttp. sphttp can simplify to add web server functionality to any C++ app. It is useful for adding Web-based administration or statistics to any C++ program or becoming the server framework of XML-RPC or JSON-RPC.
SPServer is available through the FreeBSD Ports Collection.
Changelog: Changes in version 0.9.4 (03.15.2009) ------------------------------------- * Added an embedded SMTP server based on spserver and some memory leak bugfixes. Changes in version 0.9.3 (09.24.2008) ------------------------------------- * Add judgement in SP_DefaultMsgDecoder to avoid dead loop * Safe to close session with empty response * Add toCloseList in SP_Response, using to terminate other sessions * Set client ip in SP_Request when using SP_Dispatcher/SP_IocpDispatcher * Porting to MacOS Changes in version 0.9.2 (06.28.2008) ------------------------------------- * Xyssl socket IO layer for spserver was added * An abstract layer for socket IO was added for IOCP server framework * Porting openssl plugin for IOCP server framework * Porting sptunnel to win32 Changes in version 0.9.1 (05.24.2008) ------------------------------------- * A win32 IOCP based server framework was added. * A win32 IOCP based dispatcher was added. * Improve demo programs' performance. Changes in version 0.9.0 (04.19.2008) ------------------------------------- * Porting to win32 with MSVC6 * Fix out of buffer write of SP_Buffer (From Jurgen Van Ham) * Change default listen backlog to 1024 * Remove dependency of libevent/config.h Changes in version 0.8.5 (10.27.2007) ------------------------------------- * GNUTLS socket IO layer for spserver was added Changes in version 0.8 (08.22.2007) ------------------------------------- * Matrixssl socket IO layer for spserver was added * Directory structure refactor Changes in version 0.7.5 (08.12.2007) ------------------------------------- * An ssl proxy, sptunnel, was added Changes in version 0.7 (08.11.2007) ------------------------------------- * A timer mechanism for SP_Dispatcher was added * An abstract layer for socket IO was added * An openssl socket IO layer for spserver was added Changes in version 0.6 (07.01.2007) ------------------------------------- * An Leader/Follower thread pool server was added Changes in version 0.5 (06.23.2007) ------------------------------------- * A socket dispatcher that applies a half-async/half-sync thread pool for server/client sockets was added. Changes in version 0.4 (06.12.2007) ------------------------------------- * A race condition in get/set of MsgDecoder was fixed. Changes in version 0.3 (05.15.2007) ------------------------------------- * A message block class was added to enable efficient manipulation of arbitrarily large messages without incurring much memory copying overhead. Changes in version 0.2.1 (05.10.2007) ------------------------------------- * Added an embedded HTTP server based on spserver and some minor bugfixes. Changes in version 0.1 (03.14.2007) ------------------------------------- * version 0.1 release