GGRS
GGRS is a free, open-source Rust library for peer-to-peer rollback networking in games.
What GGRS is
GGRS is a free, open-source Rust library for peer-to-peer rollback networking in games. It predicts remote player inputs and, when received inputs differ, restores a saved game state and simulates forward again. The library manages input exchange, prediction, rollback scheduling, time synchronization, and desync detection. Developers can create peer-to-peer multiplayer, spectator, and network-free sync-test sessions. A game integrating GGRS must save and load its state and advance one frame from player inputs. Networking supports non-blocking UDP sockets and custom transports through the NonBlockingSocket trait. The wasm-bindgen feature enables WebAssembly browser builds. Links are provided for a Bevy plugin, a Godot wrapper, and API documentation; demos use Bevy and Macroquad. Matchbox is used for WebRTC matchmaking in demos, but the hosted matchmaking server is offline, so opponents are not found automatically. GGRS is written in 100% safe Rust and is dual-licensed under MIT or Apache License 2.0.
Good
- Peer-to-peer rollback networking
- Supports spectator and sync-test sessions
- UDP and custom transport options
- WebAssembly browser support
- MIT or Apache 2.0 licensing
Watch out
- Games must implement state save and load
- Hosted demo matchmaking server is offline
- No matchmaking service is listed
- Requires Rust integration work
Who it suits
GGRS suits developers adding rollback networking to Rust games and related engines. It is intended for projects that can save, load, and advance game state from inputs.
Verdict
GGRS provides the rollback networking machinery while leaving game-state integration to the developer. Its sessions, transports, browser support, and engine links cover several development setups, but matchmaking and state management remain external responsibilities.
The facts
Each one read from GGRS's own pages, with the date it was checked.
What it does
- API
- The project links to API documentation hosted on docs.rs.checked 8 Oct 2001
- Bevy plugin
- The Bevy GGRS plugin advances game state and handles rollbacks through a dedicated schedule, snapshotting registered components and resources.checked 8 Oct 2001
- Demo limitation
- The project README says its hosted matchmaking server is currently offline, so the demos will not automatically find opponents.checked 8 Oct 2001
- Engine integrations
- The project links to a Bevy plugin and a Godot wrapper; its demos use Macroquad and Bevy.checked 8 Oct 2001
- Game integration
- Games provide state save and load operations and advance a frame using player inputs; GGRS handles input exchange, prediction, rollback scheduling, time synchronization, and desync detection.checked 8 Oct 2001
- Implementation
- The project describes GGRS as written in 100% safe Rust.checked 8 Oct 2001
- Input prediction
- Built-in predictors can repeat the last received input or predict the default input.checked 8 Oct 2001
- Intended audience
- The project is aimed at developers integrating rollback networking into games, with examples and documentation for setup, sessions, the main loop, requests and events, and time synchronization.checked 8 Oct 2001
- License
- GGRS is dual-licensed under MIT or Apache License 2.0, at the user's option.checked 8 Oct 2001
- Matchmaking integration
- The project’s demos use Matchbox for WebRTC-based matchmaking, and its README says Matchbox sockets can work with GGRS through a feature flag.checked 8 Oct 2001
- Networking
- GGRS supports a non-blocking UDP socket and a custom transport layer through its NonBlockingSocket trait.checked 8 Oct 2001
- Networking features
- GGRS handles input exchange, prediction, rollback scheduling, time synchronization, and desync detection.checked 8 Oct 2001
- Project status
- The README describes GGRS as fairly stable and says its core functionality for multiple players and spectators has not changed significantly in recent versions.checked 8 Oct 2001
- Purpose
- GGRS is a Rust library for peer-to-peer rollback networking, described as a reimagination of the GGPO network SDK.checked 8 Oct 2001
- Rollback
- GGRS predicts remote player inputs and, when they differ from received inputs, rolls back to a saved game state and simulates forward again.checked 8 Oct 2001
- Rollback operation
- It predicts remote player inputs, detects mispredictions, rolls back to a saved state, and simulates forward again.checked 8 Oct 2001
- Security
- The project describes GGRS as written in 100% safe Rust.checked 8 Oct 2001
- Session types
- The library provides peer-to-peer multiplayer, spectator, and network-free sync-test sessions.checked 8 Oct 2001
- Setup requirement
- A game using GGRS must save and load its state and advance one frame given player inputs.checked 8 Oct 2001
- Support and community
- The README points developers to the GGPO Developers Discord to discuss rollback networking.checked 8 Oct 2001
Where it runs
- Browser support
- The wasm-bindgen feature enables WebAssembly support for browser APIs, and the project points to Matchbox for WebRTC sockets.checked 8 Oct 2001
Alternatives to GGRS
- 1

Colyseus
Free planOpen sourceAndroidiOSWebAPI8.5From $15 a month - 2

Photon Realtime
Free planAndroidiOSWebAPI8.1From $0.29 a month - 3

Unity
Free planAndroidiOSWebLinux7.8Free plan - 4

Normcore
Free planAndroidiOSWebLinux7.5From $49 a month - 5
SmartFoxServer
Free planAndroidiOSWebAPI7.5From €32.50 a month - 6

Photon Fusion
Free planAndroidiOSWebLinux7.4From $0.50 a month
