Skip to content
crates · rust

Godot game client and serverq

A Rust crate powering KBVE games — a Godot GDExtension client with a tokio game manager, plus a bevy + axum + rapier2d server flavor.

One crate, two flavors

The default build is a Godot GDExtension (cdylib) with a tokio-backed game manager; feature flags expose a parallel server flavor built on bevy, axum, and rapier2d.

  • Mutually exclusive — client and server gated by a compile_error in lib.rs.
qPackage
2024Edition
cdylib + rlibCrate types
MITLicense

What it gives you

Features

Client flavor

Godot GDExtension with dashmap, crossbeam, bitflags, and a tokio runtime; the default build.

Server flavor

Headless Bevy ECS driven from a tokio task, mutually exclusive with client.

Protocol

postcard wire format plus bincode snapshot framing (proto-shared, proto-client, proto-server).

Physics

rapier2d for spatial queries (client) and authoritative sim step (server).

Networking

WS client for the Godot extension, Axum for the server (net-client / net-server).

Supabase auth

Server-side HS256 JWT verification to admit players.

Questions

Frequently asked

What is the q crate?

Q is a Rust crate powering KBVE games. Its default build is a Godot GDExtension (cdylib) with a tokio-backed game manager, and feature flags expose a parallel server flavor built on bevy, axum, and rapier2d.

Can q be built as both a client and a server?

Yes, but not at once. The client and server features are mutually exclusive — enforced by a compile_error in lib.rs — so a build is either the Godot GDExtension client or the headless server flavor.