GameNetworkingSockets
github.com
What it is
GameNetworkingSockets is a free BSD-3-Clause transport library for games that sends reliable and unreliable messages over UDP. It handles messages larger than the underlying MTU through fragmentation and reassembly, with retransmission for reliable messages. Packets use AES-GCM-256, while Curve25519 supports key exchange and certificate signatures. Peer-to-peer connections can use Google WebRTC ICE for NAT traversal, with an option to plug in a signaling service. Multiple message lanes can share one connection under strict priorities or weighted bandwidth rules. Included diagnostics simulate packet latency and loss and measure detailed statistics. The library is written in C++ and also exposes a plain C interface; third-party bindings are listed for C#, Go, and Rust. Build instructions cover Linux, Windows, macOS, and iOS. Steam is not required for the open-source library, but authentication, signaling, and Steam Datagram Relay remain Steam-only services. Higher-level entity serialization, delta encoding, and compression are not included.
Spec sheet
- Purpose
- GameNetworkingSockets is a basic transport layer for games that sends reliable and unreliable messages over UDP.Read 7 Oct 2026 · github.com
- Integrations
- Third-party language bindings are listed for C#, Go, and Rust.Read 7 Oct 2026 · github.com
- License
- The repository identifies its license as BSD-3-Clause.Read 7 Oct 2026 · github.com
- Build targets
- The project’s build instructions cover Linux, Windows, macOS, and iOS.Read 7 Oct 2026 · github.com
- Connection controls
- It supports multiple message lanes on one connection, with strict priorities or weights for sharing bandwidth.Read 7 Oct 2026 · github.com
- Cross-platform availability
- Valve says the library has shipped on consoles and mobile platforms, but states that access to that code requires contacting Valve because it cannot be distributed in this repository.Read 7 Oct 2026 · github.com
- Diagnostics
- The library includes tools for simulating packet latency and loss, plus detailed statistics measurement.Read 7 Oct 2026 · github.com
- Encryption
- It uses AES-GCM-256 per packet and Curve25519 for key exchange and certificate signatures.Read 7 Oct 2026 · github.com
- Language interfaces
- The library is written in C++ and also provides a plain C interface for bindings to other languages.Read 7 Oct 2026 · github.com
- Message handling
- It supports messages larger than the underlying MTU through fragmentation, reassembly, and retransmission for reliable messages.Read 7 Oct 2026 · github.com
- Not included
- The library does not provide higher-level entity serialization, delta encoding of state variables, or compression.Read 7 Oct 2026 · github.com
- Peer-to-peer
- Its P2P features include NAT traversal through Google WebRTC ICE and support for plugging in a signaling service.Read 7 Oct 2026 · github.com
- Security reporting
- The security policy asks researchers to report vulnerabilities privately through HackerOne rather than as public issues or pull requests.Read 7 Oct 2026 · github.com
- Steam dependency
- Steam is not required to use the open-source library, though Steam-only services include authentication, signaling, and Steam Datagram Relay.Read 7 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Reliable and unreliable UDP messaging
- AES-GCM-256 packet encryption
- NAT traversal through Google WebRTC ICE
- Priority or weighted message lanes
- Latency and loss simulation tools
Limits
- No higher-level entity serialization
- No delta encoding of state variables
- No compression included
- Steam Datagram Relay access is restricted
Who it suits
It suits game developers needing a UDP transport layer with reliability options, encryption, peer-to-peer networking, and diagnostics. Teams needing built-in state serialization or compression will need other components.
Verdict
GameNetworkingSockets covers core encrypted UDP transport across several desktop and mobile development targets. Its deliberately low-level scope means serialization, compression, and some Steam services remain outside the library.
Where Specifiction places it
- Game Networking Middleware#8 of 298.2