A cross-platform, high-performance C/C++ network library with simpler APIs for TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server development.
libhv is a cross-platform C/C++ network library that provides an event-driven architecture for developing high-performance TCP, UDP, SSL, HTTP, WebSocket, and MQTT client and server applications. It simplifies network programming by offering a cleaner API compared to alternatives like libevent, libuv, and Asio, while supporting a wide range of protocols and features out of the box.
C/C++ developers building networked applications, such as servers, proxies, real-time communication systems, IoT clients, or embedded systems that require efficient, cross-platform networking capabilities.
Developers choose libhv for its combination of high performance, simpler API design, and extensive protocol support, making it easier to write robust network code without sacrificing speed or portability across operating systems and devices.
🔥 比libevent/libuv/asio更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs on Linux, Windows, macOS, Android, iOS, BSD, and Solaris, as shown by CI badges in the README, making it ideal for embedded and mobile development.
Outperforms libevent, libev, and libuv in throughput tests, with 215 MB/s in echo-server benchmarks, demonstrating efficiency for network-intensive applications.
Offers intuitive APIs like golang gin style for HTTP servers and python requests style for clients, reducing boilerplate compared to more complex libraries.
Includes built-in HTTP/1.x, HTTP/2, gRPC, WebSocket, MQTT, and SSL/TLS, minimizing the need for external dependencies in multi-protocol projects.
Has fewer third-party bindings and community contributions than established alternatives like libuv or Boost.Asio, which may require more custom integration effort.
The README lists multiple build options (Makefile, cmake, bazel, vcpkg, xmake) without a clear default, potentially complicating setup for new users.
Relies heavily on examples rather than comprehensive API documentation, which could hinder discovery of advanced features without diving into source code.