FREEDOM251

Freedom251 › Game Networking Middleware

GGRS

Free plan APILinuxMacWebWindows

Visit GGRS Alternatives

GGRS's own site

What GGRS is

GGRS is a free, open-source Rust library for adding peer-to-peer rollback networking to games. It predicts remote players’ inputs; if the actual inputs differ, it restores a saved game state and simulates forward again. The library handles input exchange, prediction, rollback scheduling, time synchronization, and desync detection. Developers can set up multiplayer, spectator, or network-free sync-test sessions. Games integrating GGRS must save and load their state and advance a frame from player inputs. Networking can use non-blocking UDP or a custom transport through the NonBlockingSocket trait. The project links to Bevy and Godot integrations, and its demos use Bevy and Macroquad. Browser builds can use the wasm-bindgen feature for WebAssembly support. The demos use Matchbox for WebRTC matchmaking, but the project’s hosted matchmaking server is offline, so they will not automatically find opponents. GGRS is dual-licensed under MIT or Apache License 2.0. Its maintainers describe it as fairly stable, with core functionality for players and spectators largely unchanged in recent versions.

Who it suits

GGRS is for game developers integrating rollback networking who can implement state saving, loading, and frame advancement. It includes examples and documentation for setup, sessions, and synchronization.

What it does well

  • Supports multiplayer, spectator, and sync-test sessions.
  • Handles input prediction, rollback, and desync detection.
  • Offers UDP and custom transport options.
  • Browser builds can use WebAssembly support.

What to know first

  • Games must save and load their own state.
  • Hosted demo matchmaking is currently offline.

Verdict

GGRS provides rollback networking and several session types, with UDP and custom transport options. It does not provide working automatic matchmaking in its demos at present, and an integrating game must manage its own state.

Facts from GGRS's own pages

API
The project links to API documentation hosted on docs.rs. · github.com, 8 Oct 2026
Bevy plugin
The Bevy GGRS plugin advances game state and handles rollbacks through a dedicated schedule, snapshotting registered components and resources. · github.com, 8 Oct 2026
Browser support
The wasm-bindgen feature enables WebAssembly support for browser APIs, and the project points to Matchbox for WebRTC sockets. · github.com, 8 Oct 2026
Demo limitation
The project README says its hosted matchmaking server is currently offline, so the demos will not automatically find opponents. · github.com, 8 Oct 2026
Engine integrations
The project links to a Bevy plugin and a Godot wrapper; its demos use Macroquad and Bevy. · github.com, 8 Oct 2026
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. · docs.rs, 8 Oct 2026
Implementation
The project describes GGRS as written in 100% safe Rust. · github.com, 8 Oct 2026
Input prediction
Built-in predictors can repeat the last received input or predict the default input. · docs.rs, 8 Oct 2026
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. · github.com, 8 Oct 2026
License
GGRS is dual-licensed under MIT or Apache License 2.0, at the user's option. · github.com, 8 Oct 2026
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. · github.com, 8 Oct 2026
Networking
GGRS supports a non-blocking UDP socket and a custom transport layer through its NonBlockingSocket trait. · docs.rs, 8 Oct 2026
Networking features
GGRS handles input exchange, prediction, rollback scheduling, time synchronization, and desync detection. · docs.rs, 8 Oct 2026
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. · github.com, 8 Oct 2026
Purpose
GGRS is a Rust library for peer-to-peer rollback networking, described as a reimagination of the GGPO network SDK. · github.com, 8 Oct 2026
Rollback
GGRS predicts remote player inputs and, when they differ from received inputs, rolls back to a saved game state and simulates forward again. · docs.rs, 8 Oct 2026
Rollback operation
It predicts remote player inputs, detects mispredictions, rolls back to a saved state, and simulates forward again. · docs.rs, 8 Oct 2026
Security
The project describes GGRS as written in 100% safe Rust. · github.com, 8 Oct 2026
Session types
The library provides peer-to-peer multiplayer, spectator, and network-free sync-test sessions. · docs.rs, 8 Oct 2026
Setup requirement
A game using GGRS must save and load its state and advance one frame given player inputs. · docs.rs, 8 Oct 2026
Support and community
The README points developers to the GGPO Developers Discord to discuss rollback networking. · github.com, 8 Oct 2026

Where GGRS stands on Freedom251

Look at these too