For a cross-platform networking library for C++, the strongest matches are chriskohlhoff/asio (Asio is a comprehensive, industry-standard C++ library that provides), zaphoyd/websocketpp (This is a header-only C++ library that provides asynchronous) and ithewei/libhv (libhv is a high-performance, cross-platform C/C++ networking library that). libuv/libuv and yuesong-feng/30daymakecppserver round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best c++ networking libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
Asio is a C++ library for performing network and low-level I/O operations using a consistent asynchronous model that avoids blocking program execution. It provides a portable, cross-platform interface for network socket communication across different operating systems, and manages multiple asynchronous operations without requiring explicit thread management or locking. The library implements a proactor-based asynchronous model where operations post completion handlers to a queue for later execution, and wraps operating system I/O multiplexing mechanisms like epoll, kqueue, IOCP, and select in
Asio is a comprehensive, industry-standard C++ library that provides the exact asynchronous I/O, cross-platform socket communication, and networking abstractions required for high-performance network applications.
This is a header-only C++ library and asynchronous network framework used to implement WebSocket clients and servers. It provides a full implementation of the WebSocket protocol, including handshakes, subprotocol negotiation, and frame parsing. The framework is distinguished by a policy-based transport layer and template-driven protocol negotiation, allowing the underlying network implementation to be swapped between raw buffers, streams, or custom policies. It supports per-message deflate compression to reduce data transmission volume and integrates Transport Layer Security for encrypted bid
This is a header-only C++ library that provides asynchronous networking and TLS support specifically for the WebSocket protocol, making it a specialized tool for building network applications.
libhv is a high-performance C/C++ network library and event-driven I/O framework used to build TCP, UDP, SSL, HTTP, WebSocket, and MQTT clients and servers. It provides a non-blocking event loop for managing network sockets, timers, and system signals across multiple threads. The project is distinguished by its integrated support for specialized network roles, including a full HTTP web server with RESTful routing and middleware, an MQTT messaging client for IoT communication, and the ability to implement SOCKS5 and HTTP proxies. It also features a reliable UDP implementation to ensure ordered
libhv is a high-performance, cross-platform C/C++ networking library that provides an asynchronous event loop, comprehensive TCP/UDP/SSL support, and a flexible API for building robust network applications.
libuv is a cross-platform asynchronous I/O library that provides an abstraction layer for event-driven networking, filesystem operations, and system signals. It utilizes a non-blocking event loop to coordinate asynchronous tasks and I/O events across different operating systems. The project features a unified interface for managing TCP, UDP, and DNS resolution, alongside an inter-process communication layer for sharing sockets via named pipes and Unix domain sockets. To prevent blocking the main execution loop, it includes a multi-platform thread pool for offloading computationally expensive
This is a high-performance, cross-platform asynchronous I/O library that provides the core event-driven networking and socket management capabilities required for building network applications, though it is written in C rather than C++.
This project is a C++ TCP server framework and educational socket programming guide. It provides a high-performance network library focused on event-driven architecture, implementing a reactor pattern to handle thousands of simultaneous client connections. The framework is distinguished by its multi-threaded event loop, which utilizes a main-sub reactor coordination model to distribute network events across a worker thread pool. It includes an abstraction layer for non-blocking socket I/O and event multiplexing via the epoll system call, decoupling network transport from application business
This project provides a high-performance, event-driven C++ networking framework that implements a reactor pattern for handling concurrent TCP connections, making it a suitable tool for building network applications despite its educational focus.
nanomsg is a distributed messaging middleware and scalable messaging library designed for moving data between machines and processes. It functions as a socket-based communication framework that routes data across different network transport layers. The library implements scalable messaging patterns, specifically request-reply and publish-subscribe, to handle high volumes of data across distributed systems. It provides tools for network performance benchmarking to quantify messaging throughput and latency. The framework supports distributed message routing and inter-process communication usin
This library provides a high-performance, cross-platform framework for socket-based communication and distributed messaging, though it focuses on messaging patterns rather than raw TCP/UDP socket management.
The C++ REST SDK is a library for asynchronous HTTP and RESTful communication in native C++ applications. It provides a non-blocking network client for sending requests and receiving responses, a JSON parser for serializing and deserializing data, and a WebSocket client library for real-time, full-duplex communication. The project includes a dedicated OAuth2 authentication client to manage access tokens and authorization flows for secure communication with protected cloud resources. It utilizes a task-based asynchronous model to coordinate background operations and keep application interfaces
This library provides high-performance asynchronous HTTP, REST, and WebSocket communication, serving as a robust tool for network-heavy C++ applications despite its focus on higher-level protocols rather than raw socket management.
Muduo is a C++11 event-driven network library and framework designed for building high-concurrency Linux servers. It provides a toolkit for implementing scalable network services and socket communication using non-blocking I/O and asynchronous event processing. The framework implements a multi-threaded TCP server architecture that distributes connection handling across multiple CPU threads to maximize server throughput. This is achieved through a one-loop-per-thread model and a reactor pattern implementation, which dispatch network events from a central demultiplexer to registered handler fun
Muduo is a high-performance, event-driven C++ networking library that provides asynchronous I/O and TCP support, though it is specifically optimized for Linux rather than being a cross-platform solution.
Libevent is a cross-platform library that provides a mechanism for executing callback functions when specific events occur on file descriptors, signals, or timers. It functions as a network event loop framework, enabling the development of applications that manage concurrent network connections and non-blocking input and output operations within a single execution context. The library distinguishes itself by providing a portable abstraction layer that automatically selects the most efficient system-level event notification mechanism available on the host operating system. It includes thread-s
Libevent is a high-performance, cross-platform event notification library that provides the core asynchronous I/O and event-loop infrastructure required for building robust network applications in C and C++.
Coost is a concurrent network framework and coroutine scheduler designed for building high-performance TCP, HTTP, and RPC services. It provides a set of tools for handling non-blocking IPv4 and IPv6 communication, integrating SSL encryption and a lightweight execution engine that manages concurrent tasks using shared stacks. The project features a specialized JSON RPC implementation for exchanging structured data over encrypted connections and a high-performance logging system. This logging infrastructure supports topic-based routing, frequency filtering, and automated stack trace capture for
Coost is a high-performance C++ networking framework that provides asynchronous I/O, coroutine-based concurrency, and built-in SSL/TLS support for building robust network services.
POCO is a comprehensive C++ application framework that provides a cross-platform set of libraries for building network-centric applications. It offers a unified abstraction layer that wraps platform-specific APIs, enabling the same code to run across desktop, server, mobile, IoT, and embedded systems. The framework is organized into modular libraries that can be compiled and linked selectively, allowing developers to include only the components their application needs. The framework distinguishes itself through its broad coverage of application infrastructure needs, including threading and sy
POCO is a comprehensive C++ framework that provides robust, cross-platform networking abstractions including asynchronous I/O, TCP/UDP support, and integrated SSL/TLS, making it a well-suited tool for building network-centric applications.
libzmq is a C++ based asynchronous messaging engine and networking core designed for routing non-blocking messages between distributed nodes. It functions as a distributed message queue that implements the ZMTP wire-format framing protocol to standardize how data moves across different network transport layers. The library provides a multi-transport abstraction that allows a single interface to route data across TCP, IPC, and in-process memory. It incorporates a cryptographic layer to encrypt and authenticate transmissions between nodes and employs topology-based messaging patterns, such as p
This library provides a high-performance, asynchronous messaging engine that abstracts complex socket communication and transport layers, making it a robust choice for building distributed network applications.
MsQuic is a cross-platform, C-based implementation of the QUIC protocol. It provides a network library for establishing encrypted and authenticated transport links over UDP, integrating TLS to ensure all data flows between endpoints are encrypted. The implementation utilizes a language-agnostic binding layer to support high-level languages including C#, Rust, and C++. It features connection-ID based migration to maintain active sessions when IP addresses or ports change, and employs multi-stream multiplexing to manage independent data flows within a single connection. The library covers netw
This is a high-performance, cross-platform networking library that provides asynchronous I/O and TLS integration, though it is specifically focused on the QUIC protocol rather than general-purpose TCP/UDP socket management.
Beast is a C++ library for implementing low-level HTTP and WebSocket clients and servers. It functions as an asynchronous networking framework designed to compose non-blocking I/O operations and layered stream stacks for managing concurrent network traffic, specifically utilizing the Boost.Asio asynchronous model. The library provides a comprehensive implementation of the HTTP/1.1 and WebSocket protocols. For HTTP, it includes primitives for parsing and serializing messages with support for chunked transfer encoding, incremental body reading, and request pipelining. Its WebSocket implementati
Beast is a high-performance C++ library built on Boost.Asio that provides robust asynchronous networking, protocol support for HTTP and WebSockets, and cross-platform capabilities, making it a standard choice for complex network applications.
Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides a wide range of reusable components, data structures, and algorithms designed to add capabilities to the base language across different platforms. The project is distinguished by its extensive focus on compile-time template metaprogramming and generic programming. It implements advanced architectural patterns such as policy-based design, concept-based type validation, and the use of SFINAE for conditional template resolution to minimize runtime overhead. The library covers a
Boost includes the Asio library, which is a industry-standard, high-performance C++ framework for asynchronous networking and socket communication that meets all your requirements for cross-platform I/O and protocol support.
Proxygen is a collection of C++ libraries for building high-performance HTTP servers and clients. It provides a protocol parser that converts raw network bytes into high-level transaction objects and includes a network stack for processing web traffic over the QUIC transport protocol. The project implements a layered protocol abstraction and a QUIC-based transport integration to support multiple versions of the HTTP standard, including HTTP/3. It utilizes state-machine based parsing and an event-driven I/O loop to manage concurrent network connections. The library covers asynchronous buffer
Proxygen is a high-performance C++ library for building HTTP and QUIC-based network applications, providing the asynchronous I/O and cross-platform capabilities required for complex socket communication.
uWebSockets is a high-performance networking engine providing an HTTP web server and a WebSocket server framework. It implements a multi-threaded event loop architecture to deploy isolated application instances across multiple CPU cores and includes an SSL/TLS network layer for secure, encrypted communication. The project features a dedicated WebSocket pub/sub engine for distributing messages to specific groups of connected clients. It optimizes network throughput through syscall corking to reduce kernel overhead and employs payload compression to minimize data transfer sizes. The system cov
This is a high-performance C++ networking library that provides asynchronous I/O and SSL/TLS support, though it is specifically architected as a web and WebSocket server framework rather than a general-purpose socket library.
Seastar is a C++ server application framework and asynchronous programming library designed for building high-performance, shared-nothing server applications. It functions as a high-performance I/O engine providing direct disk and network access through a shared-nothing framework that partitions data and execution across CPU cores. The framework distinguishes itself through a thread-per-core architecture that eliminates locking and resource contention by assigning one execution thread to each physical CPU core. It implements a userspace TCP/IP stack and kernel-bypass techniques, integrating w
Seastar is a high-performance, asynchronous C++ framework designed for building network-intensive server applications, though it focuses on a specialized shared-nothing architecture rather than being a general-purpose socket library.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| chriskohlhoff/asio | 5.9K | C++ | NOASSERTION | |
| zaphoyd/websocketpp | 7.7K | C++ | NOASSERTION | |
| ithewei/libhv | 7.5K | C | BSD-3-Clause | |
| libuv/libuv | 26.9K | C | MIT | |
| yuesong-feng/30daymakecppserver | 7K | C++ | — | |
| nanomsg/nanomsg | 6.3K | C | NOASSERTION | |
| microsoft/cpprestsdk | 8.3K | C++ | NOASSERTION | |
| chenshuo/muduo | 16.2K | C++ | NOASSERTION | |
| libevent/libevent | 11.9K | C | NOASSERTION | |
| idealvin/coost | 4.2K | C++ | NOASSERTION |