Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. wepoll

wepoll

NOASSERTIONC

A fast and scalable epoll API implementation for Windows, enabling efficient socket state notifications.

GitHubGitHub
1.1k stars168 forks0 contributors

What is wepoll?

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.

Target Audience

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.

Value Proposition

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.

Overview

wepoll: fast epoll for windows⁧ 🎭

Use Cases

Best For

  • Porting Linux network servers to Windows with minimal changes
  • Building high-performance socket-based applications on Windows
  • Handling hundreds of thousands of concurrent connections efficiently
  • Replacing select() or WSAPoll() in existing Windows network code
  • Developing cross-platform networking libraries or frameworks
  • Implementing event-driven architectures on Windows

Not Ideal For

  • Applications requiring edge-triggered event notification (EPOLLET) for optimized I/O handling
  • Projects that need to poll non-socket resources like files or pipes on Windows
  • Software targeting Windows versions earlier than Vista
  • Systems already deeply integrated with Windows I/O completion ports for native performance

Pros & Cons

Pros

High Performance Scalability

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.

Full Thread Safety

Supports multiple threads polling the same epoll port safely, enabling robust multi-threaded applications without data races, a key feature highlighted in the documentation.

Minimal Integration Overhead

Distributed as just two source files (wepoll.c and wepoll.h), allowing easy embedding into existing projects without complex dependencies or build systems.

Cross-Platform Porting Ease

API closely mirrors Linux epoll, reducing code changes when porting Linux-based network software to Windows, as emphasized in the rationale section.

Cons

Missing Edge-Triggered Mode

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.

Socket-Only Limitation

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.

Windows Version Dependency

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.

Frequently Asked Questions

Quick Stats

Stars1,088
Forks168
Contributors0
Open Issues8
Last commit1 year ago
CreatedSince 2012

Tags

#c-library#high-performance#network-programming#cross-platform#epoll#scalability#windows

Built With

C
C++

Included in

C/C++70.6k
Auto-fetched 6 hours ago

Related Projects

uWebSocketsuWebSockets

Simple, secure & standards compliant web server for the most demanding of applications

Stars18,817
Forks1,852
Last commit6 days ago
KCPKCP

:zap: KCP - A Fast and Reliable ARQ Protocol

Stars16,725
Forks2,602
Last commit1 year ago
Cpp-HttpLibCpp-HttpLib

A C++ header-only HTTP/HTTPS server and client library

Stars16,413
Forks2,668
Last commit8 hours ago
MongooseMongoose

Embedded web server, with TCP/IP network stack, MQTT and Websocket

Stars12,753
Forks2,909
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub