mitchellh/libxev

libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux...

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 14 minutes ago
Added to GitGenius on September 19th, 2026
Created on January 7th, 2023
Open Issues & Pull Requests: 67 (+0)
GitHub issues: Enabled
Number of forks: 191
Total Stargazers: 3,582 (+0)
Total Subscribers: 33 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.9 days
Mean response time: 71.1 days
90th percentile: 291.6 days
Tracked items: 29

Most active contributors

Sign in to see contributor activity.

How this project is maintained

100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 26
New in 7 days: 2
Closed in 7 days: 0
Avg open age: 449 days
Stale 30+ days: 21
Stale 90+ days: 15

Recent activity

Opened in 7 days: 2
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (3)
  • enhancement (2)
  • backend/epoll (1)
  • backend/kqueue (1)
  • performance (1)
  • question (1)

Detailed Description

libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more.

The library addresses the need for a generalized event loop comparable to existing solutions but designed around io_uring patterns and principles. It unifies event handling across multiple platforms by implementing a proactor API, where work is submitted to the event loop and callers are notified of completion rather than readiness. The tool supports Linux via io_uring or epoll, macOS via kqueue, and WebAssembly through both WASI and freestanding environments, with Windows support planned. It offers both high-level platform-agnostic APIs and low-level escape hatches for maximum performance, covering timers, TCP, UDP, file operations, and process management.

Developers should choose this tool if they need a lightweight event loop that avoids runtime allocations and works across diverse platforms including embedded environments and WebAssembly targets. The library suits projects requiring predictable performance characteristics and the ability to compile to multiple backends without major code changes. It is particularly valuable for teams building in Zig or needing C API compatibility, as it exports a C-compatible interface usable from any language that can call C functions. The high-level API provides sensible defaults for most use cases, while the low-level API allows fine-grained control when needed. The project is in daily use by large-scale applications and has demonstrated stability in production environments.

The project maintains active engagement with real-world usage patterns, as evidenced by its integration into established production systems. Development prioritizes practical robustness over theoretical completeness, with the maintainers acknowledging that less-used library corners may have gaps while core functionality remains battle-tested. The codebase reflects careful attention to performance characteristics and resource efficiency, particularly around the zero-allocation design constraint. The project's scope remains focused on event loop functionality rather than expanding into adjacent domains, keeping the surface area manageable for both maintenance and users.