Skip to content
/ nets Public

Secure multi-platform networking library with implemented TCP / UDP / HTTP server and client

License

Notifications You must be signed in to change notification settings

cfnptr/nets

Repository files navigation

Nets

A library providing generic interface for transferring data over a network across different platforms.

Features

  • Blocking / non-blocking socket
  • Stream client / server (TCP)
  • Datagram client / server (UDP)
  • Secure socket layer (OpenSSL)
  • Datagrams over TCP stream
  • HTTP client (TLS, Compression)

Supported operating systems

  • Windows (10/11)
  • Ubuntu (22.04/24.04)
  • macOS (14/15)

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 CI

  • Windows: ./scripts/build-release.bat
  • macOS / Ubuntu: ./scripts/build-release.sh

Third-party

  • mpmt (Apache-2.0 License)
  • mpio (Apache-2.0 License)
  • OpenSSL (Apache-2.0 License)
  • zlib (zlib License)

Inspired by

Special thanks to Gigaflops.