-
Notifications
You must be signed in to change notification settings - Fork 19
Home
A library based on non-blocking communication and multi-threaded event-driven model helps you develop server with high-performance and numerous concurrent connections.
Many server programs must handle a large quantity of TCP connections from client sides, such as Web server, online server, message server, etc. In earlier implementation of communication server, a connection request is usually received and processed by one standalone process or thread, the typical application is the eralier version of apahce web server. Based on asynchromous readiness notification of file descriptor, the process or thread can be unnecessary to block till the coming of data. By setting the file descriptors as non-blocking and monitoring the state of fd-sets read or write with epoll/select facilities, the epump library implementation creates IO-device objects for the management of fds, adds IO-timer facility for the timing-driven requirements. Fully utlizing the capacity by starting the same number of threads as CPU cores, the epump library adopts the callback mechanism for application developer.
Lots of complicated underlying details are encapsulated and easy APIs are provided for fast development of high performance server program.
EPump is renamed from the eprobe system, an event-driven library developed by the author in 2003 based on a shared multi-threaded, non-blocking communication model. The eprobe system has been applied to the development of many communication software as basic framework in commercial and has been tested in practice.
The original version of the Eprobe system version 0.1.1 was launched in March 2003. And the initial name of the released system was called "Probe". Over the next few years, iterative development of the probe system had been ongoing, releasing versions from 0.1.x to 0.9.10. When version 1.0 was launched in 2007, with the support of epoll, probe was renamed Eprobe, meaning "extended probe".
EPump is evolved from eprobe system, symbolizing many pumps for various read/write events from file-descriptors or timeout events from the timers.
The newest verion 2.1.8 of EPump library was launched on December 15, 2018, as a high-performance event-driven multi-threaded framework.