Crates

Beet is a workspace of small crates, each usable on its own. The top-level beet crate simply re-exports them behind feature flags, so an app pulls in only the parts it needs. They layer cleanly: the agent and tooling crates are built from the core ones, not bolted onto them.

A readiness meter marks how settled each crate is:

Core

The foundations every other crate shares.

CrateStatusWhat it does
beet_core🦢Cross-platform types, extension traits and the test runner
beet_net🐣Transport-agnostic request/response networking
beet_action🐣Entities as callable async functions
beet_ui🐉XML-like UI trees rendered to HTML or the terminal
beet_router🐉Transport-agnostic routing for Bevy apps
beet_infra🐉Infrastructure as code, built on OpenTofu
beet_async🐉Vendored async-world bridge for wasm and exclusive world access

Agents and behavior

Behaviors built on beet_action: behavior trees, utility AI and agentic systems.

CrateStatusWhat it does
beet_thread🐉Multi-actor orchestration for chat, humans and agents
beet_spatial🐉Spatial actions: movement, steering and robotics
beet_ml🐉Machine learning actions: embeddings and reinforcement learning

Apps and tooling

CrateStatusWhat it does
beet-cli🐉Build, serve and run-wasm helpers for beet apps

beet_examples (shared scaffolding for the larger examples) rounds out the workspace. It is built with beet but is not meant to be depended on directly.

How they stack up

beet_core sits at the bottom and beet_async gives futures exclusive access to the Bevy world. On top of those, beet_action turns entities into callable functions, the primitive that beet_net, beet_router, beet_thread, beet_spatial and beet_ml all build on. beet_ui describes interfaces, and beet_infra describes the cloud they deploy to. Pick one crate or compose them all.