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:
- Fix memory leak in IOCP Server.
- Improve SP_DotTermMsgDecoder performance.
- Added an embedded SMTP server based on spserver and some memory leak bugfixes.
- 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
- 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
- A win32 IOCP based server framework was added.
- A win32 IOCP based dispatcher was added.
- Improve demo programs' performance.
- 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
- GNUTLS socket IO layer for spserver was added
- Matrixssl socket IO layer for spserver was added
- Directory structure refactor
- An ssl proxy, sptunnel, was added
- 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
- An Leader/Follower thread pool server was added
- A socket dispatcher that applies a half-async/half-sync thread pool for server/client sockets was added.
- A race condition in get/set of MsgDecoder was fixed.
- A message block class was added to enable efficient manipulation of arbitrarily large messages without incurring much memory copying overhead.
- Added an embedded HTTP server based on spserver and some minor bugfixes.
- version 0.1 release