Skip to content

MSRV 1.87.0

Rust + Godot multiplayer signaling

Signal Fish Client SDK

Use this SDK to connect a Rust game to Signal Fish, place players in rooms, relay game data, and react to server events. Choose an async Tokio client or a polling client that runs inside your game loop.

Install and connect View on GitHub

Release status

0.10.0 is the current crates.io release and supports Rust 1.87.0 or newer. This site follows unreleased main; use the 0.10.0 API docs for the published surface.

Get connected

  1. Run or obtain a Signal Fish server and choose an App ID. It is a public application label, not a secret. The server's five-minute quick start provides a development setup.
  2. Add signal-fish-client to your game.
  3. Connect a transport and start a client.
  4. Wait for Authenticated, then join a room.
  5. Keep draining events while the client is active.

The installation guide includes a complete first client. The repository's basic_lobby example adds readiness, game start, reconnection state, error, and shutdown handling.

Pick the right path

If you are building Start with
A Tokio-based Rust game or service SignalFishClient and the built-in WebSocket transport
A Godot 4.5 native or web game SignalFishPollingClient and the Godot adapter
A browser or frame-driven engine SignalFishPollingClient and a platform transport
A game with WebRTC peers Protocol v3 and the mesh guide after the relay path works

Protocol v2 relay is the simplest starting point. Protocol v3 adds delivery accountability and mesh signaling when your game needs them.

Read by task

When you need more detail

The navigation groups these deeper topics separately so you can start without reading the protocol internals first.