A minimal, cross-platform networking library providing optimized TCP, TLS, QUIC, and HTTP3 transports for async applications.
µSockets is a minimal, cross-platform networking library that provides optimized, non-blocking transports for TCP, TLS, QUIC, and HTTP3. It serves as the foundation for µWebSockets, enabling high-performance asynchronous applications with a single, consistent API across different platforms and event loops.
Developers building high-performance networked applications, such as web servers, real-time systems, or custom protocols, who need a lightweight, cross-platform networking layer with support for modern transports like QUIC.
Developers choose µSockets for its minimal footprint, proven stability, and ability to write transport-agnostic code that runs efficiently across multiple platforms and event loops without modification.
Miniscule cross-platform eventing, networking & crypto for async applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a single, consistent interface for TCP, TLS, QUIC, and HTTP3 across all platforms and event loops, enabling code to run anywhere without modifications, as highlighted in the README's 'Write code once' philosophy.
Can be built as a tiny TCP-only library with zero external dependencies or extended with BoringSSL and lsquic, offering flexibility for lightweight or feature-rich deployments, per the 'Lightweight or featureful' section.
Used as the foundation for µWebSockets since 2016 with fuzz-tested reliability and thread-per-CPU design optimized for multi-core systems, ensuring high performance in production.
Integrates with various event loops like io_uring, libuv, ASIO, and GCD via compile-time configurations, allowing developers to choose the best fit for their platform.
QUIC and io_uring are explicitly listed as work-in-progress in the README, meaning these advanced transports and event loops may not be fully stable or available.
Requires managing multiple compile-time flags (e.g., WITH_QUIC, WITH_IO_URING) and dependencies, which can be error-prone and daunting for developers new to the library.
The README focuses on high-level features with minimal examples or tutorials, lacking detailed guidance that could hinder rapid adoption and debugging.