A modern C++11 network library for high-performance TCP/UDP/HTTP services, designed for multi-threaded, non-blocking event-driven applications.
evpp is a modern C++ network library designed for building high-performance network services that use TCP, UDP, and HTTP protocols. It solves the need for a scalable, thread-safe, and efficient networking foundation in C++ applications, particularly for long-connection gateways and other TCP-based services. The library is built on libevent and offers a clean, C++11-style API with multi-threaded, non-blocking servers and clients.
C++ developers building high-performance network servers, such as gateways, real-time communication systems, or HTTP/UDP services that require multi-threading and event-driven architectures.
Developers choose evpp for its production-proven reliability, performance advantages over alternatives like libevent, and its modern C++11 interface that simplifies network programming while ensuring thread safety and scalability.
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses contemporary C++ features and functional callbacks, replacing C-style function pointers for more expressive and maintainable code, as highlighted in the interface design.
Shows 17%–130% higher throughput than libevent and competitive performance with Boost.Asio, based on detailed benchmark reports linked in the README.
Processes over 1000+ billion communications daily in production, proving robustness and stability in high-load environments, as stated in the features.
Implements rigorous thread-local storage checks to manage event resources safely, minimizing concurrency errors, as explained in the origin section.
Can be packaged as deb, rpm, or tar.gz with a single command, simplifying installation and integration for deployment, as noted in the features.
Lacks built-in support for modern protocols like HTTP/2, WebSockets, or gRPC, with features like an async Redis client still on the TODO list, limiting out-of-the-box functionality.
The README admits that comments are written in Mandarin and need fixing, which could hinder non-Chinese speakers from fully understanding the codebase and contributing.
Tied to libevent as its underlying event library, which might constrain projects wanting to avoid this dependency or integrate with other event-driven frameworks.
The master branch may not be stable at all times, as per the NOTE, posing risks for production use without careful versioning and testing.