Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

godot-grpc brings native gRPC to Godot 4.6+ as a Rust GDExtension, built on godot-rust (gdext), tonic, and tokio.

Godot has no built-in gRPC support. Existing community options cover protobuf messages in GDScript but not gRPC services or streaming. godot-grpc provides:

  • Unary and streaming RPCs — server-, client-, and bidirectional-streaming.
  • TCP and Unix Domain Socketshttp://host:port or unix:///path/to.sock.
  • Three ways to call, none requiring a Godot-side build step:
    • Typed codegen — generated GDScript classes for the most ergonomic API.
    • Tier 2 (runtime descriptors) — load a descriptor file, call with Dictionary/GrpcMessage. Zero codegen.
    • Tier 1 (raw bytes) — the lowest-level building block.
  • Sound threading — tokio runs on a background thread; results are delivered on the Godot main thread, so Gd<T> is never shared across threads.

Who this is for

  • GDScript developers who want to talk to a gRPC backend from a Godot game, tool, or kiosk app — use tier 2 or the typed codegen.
  • Rust extension authors who depend on godot-grpc as a crate and want the channel/runtime/bridge while using their own generated tonic clients (tier 1).

Status

The functional core is complete and tested (unary + all four streaming modes, runtime + generated APIs). It is pre-1.0 — APIs may change before 1.0. Linux and macOS are supported; Windows is future work. MIT-licensed.