A library providing generic interface for transferring data over a network across different platforms.
See the documentation.
Features
- Blocking / non-blocking socket
- Stream client / server (TCP)
- Datagram client / server (UDP)
- Secure socket layer (SSL, TLS)
- Datagrams over TCP stream
- Smart stream message handle
- C and C++ implementations
Supported operating systems
- Windows (10/11)
- Ubuntu (22.04/24.04)
- macOS (15/26)
This list includes only those systems on which functionality testing is conducted. However, you can also compile it under any other Linux distribution or operating system.
Build requirements
Use building instructions to install all required tools and libraries.
CMake options
| Name | Description | Default value |
| NETS_BUILD_EXAMPLES | Build Nets usage examples | ON |
| NETS_USE_OPENSSL | Use OpenSSL for secure communication | ON |
| NETS_ALLOW_DEPRECATED_SSL | Allow deprecated OpenSSL functions | OFF |
Cloning
git clone --recursive https://github.com/cfnptr/nets
Building 
- Windows: ./scripts/build-release.bat
- macOS / Ubuntu: ./scripts/build-release.sh
Third-party
- cURL (curl License)
- mpmt (Apache-2.0 License)
- mpio (Apache-2.0 License)
- OpenSSL (Apache-2.0 License)
Inspired by
Special thanks to Gigaflops.