A fast and scalable epoll API implementation for Windows, enabling efficient socket state notifications.
wepoll is a C library that implements the Linux epoll API for Windows, providing a fast and scalable socket event notification system. It solves the problem of inefficient socket polling on Windows by offering a high-performance alternative to native APIs like select and WSAPoll, which have scalability and reliability issues.
Developers building cross-platform network applications or server software that need efficient socket I/O on Windows, especially those porting Linux-based software that relies on epoll.
Developers choose wepoll because it delivers near-Linux epoll performance on Windows with minimal code changes, enabling scalable socket handling without the overhead of I/O completion ports or the limitations of native Windows polling APIs.
wepoll: fast epoll for windows 🎭
Efficiently handles hundreds of thousands of sockets, as stated in the README, making it ideal for high-concurrency network servers on Windows where native APIs like select fail.
Supports multiple threads polling the same epoll port safely, enabling robust multi-threaded applications without data races, a key feature highlighted in the documentation.
Distributed as just two source files (wepoll.c and wepoll.h), allowing easy embedding into existing projects without complex dependencies or build systems.
API closely mirrors Linux epoll, reducing code changes when porting Linux-based network software to Windows, as emphasized in the rationale section.
Does not support EPOLLET, a key feature in Linux epoll for certain performance-critical applications, limiting fidelity and forcing developers to use level-triggered workarounds.
Only works with sockets, unlike Linux epoll which can handle various file descriptors, restricting its use to network I/O and excluding other I/O types like files or pipes.
Requires Windows Vista or higher, as noted in the compatibility section, excluding support for older operating systems that might still be in use in legacy environments.
Simple, secure & standards compliant web server for the most demanding of applications
:zap: KCP - A Fast and Reliable ARQ Protocol
A C++ header-only HTTP/HTTPS server and client library
Embedded web server, with TCP/IP network stack, MQTT and Websocket
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.