A header-only, event-based C++17 wrapper for libuv that provides a modern API while staying true to libuv's original interface.
uvw is a header-only, event-based wrapper for libuv written in modern C++. It provides a clean, type-safe C++ API for libuv's asynchronous I/O capabilities while maintaining full compatibility with libuv's original interface and semantics. The library solves the problem of using libuv's C API in C++ projects by offering a more idiomatic and resource-safe programming model.
C++ developers building cross-platform asynchronous applications, network services, or system tools who want to leverage libuv's capabilities with a modern C++ interface. It's particularly useful for those familiar with libuv who prefer C++'s type safety and resource management features.
Developers choose uvw because it provides a faithful, zero-overhead wrapper for libuv with a clean C++ API, eliminating the need to work directly with libuv's C interface. Its header-only option simplifies integration, while the event-based design aligns with modern asynchronous programming patterns.
Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!
Can be used as a header-only library for easy integration or compiled as a static library for optimized builds, offering flexibility in project setup as described in the 'Library' section.
Leverages C++17 features, smart pointers, and type-safe interfaces to provide a clean, resource-safe programming model, transforming libuv's C API into an event-driven C++ interface.
Faithfully wraps libuv without adding abstraction layers, ensuring users follow the same rules and patterns as native libuv development, maintaining zero-overhead compatibility.
Resources act as event emitters with listeners for specific events like data reception or errors, simplifying callback management and aligning with modern asynchronous patterns.
Since uvw doesn't abstract libuv's semantics, developers must understand libuv's complex lifecycle rules, which can be a barrier for newcomers without prior experience.
Strictly wraps libuv and doesn't provide additional utilities like built-in protocol support, requiring extra work for common tasks such as HTTP server implementation.
Versioning is tied to libuv releases (e.g., v1.0.0_libuv-v1.12), making dependency management more cumbersome and potentially confusing compared to standalone libraries.
Cross-platform asynchronous I/O
🔥 比libevent/libuv/asio更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server.
An Open Source Implementation of the Actor Model in C++
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.