-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Metehan Gezer edited this page Jul 30, 2026
·
5 revisions
A C++ networking library for applications that send structured messages: define a packet, register a serializer, send it. Encryption, compression and framing are handled underneath, and the same API runs over TCP or over ZDT, znet's reliable-UDP transport.
It sits above asio and libuv rather than beside them. Those give you a socket and an event loop; znet gives you sessions, typed messages and an event callback, and owns the threads that drive them.
| Getting Started | Build it, then a server and a client that talk to each other |
| Packets and Serialization | Defining messages and putting them on the wire |
| Events | The six events, and what you are expected to do in each |
| Choosing a Transport | TCP or ZDT, and ZDT's per-message delivery modes |
| Threading Model | Which thread calls your code, and what is safe to call back |
| Configuration Reference | Every option, what it bounds, and when to change it |
| Encryption and Compression | How both are negotiated, and who decides |
| Metrics | The counters, and reading them without lying to yourself |
| Peer-to-Peer | Rendezvous and hole punching |
-
C++14 or newer. The default is C++20;
-DZNET_CXX_STANDARD=14,17,20or23picks one. Raising it adds capability, never API: the same code compiles at every level. - CMake 3.29+
- OpenSSL — found automatically if installed
-
zstd — bundled, or supply your own with
-DZNET_USE_EXTERNAL_ZSTD=ON
Windows, Linux and macOS.
Every code block here is compiled from a real source file as part of writing
these pages, at C++14 through C++23 with -pedantic-errors. Where something is
only available at a higher standard, the page says so.
Apache 2.0.