Skip to main content

Crates

One section per workspace crate: what it is for, what it depends on inside the workspace, and what it exports.

balaur

Balaur game engine: batteries-included facade over the core and standard plugins

Batteries-included entry points for Balaur games and tools.

  • workspace deps: balaur_audio, balaur_core, balaur_input, balaur_physics, balaur_render, balaur_script_luau, balaur_script_rune, balaur_ui
  • external deps: 1 (anyhow)
  • public surface: 5 fn

balaur_audio

Balaur audio plugin backed by rodio

Audio as a Balaur plugin, backed by rodio.

  • workspace deps: balaur_core, balaur_script
  • external deps: 3 (anyhow, rodio, tracing)
  • public surface: 2 struct
  • structs: AudioPlugin, AudioState

balaur_bench

Benchmarks: where a frame's time goes, and what each language costs

Shared setup for the benchmarks: build a project on disk, boot an app on a chosen backend, attach scripts to N nodes.

  • workspace deps: balaur, balaur_core, balaur_physics, balaur_script, balaur_script_luau, balaur_script_rune
  • external deps: 4 (anyhow, hecs, tempfile, toml)
  • public surface: 2 fn, 1 struct, 1 enum
  • structs: Project
  • enums: Backend

balaur_cli

The balaur command line tool: create, run, export, and play projects.

  • workspace deps: balaur
  • external deps: 5 (anyhow, clap, tracing, tracing-log, tracing-subscriber)
  • public surface: nothing public

balaur_core

Balaur engine core: ECS data plane, scene tree, frame scheduler, plugin API

Balaur engine core: the Rust data plane.

  • workspace deps: balaur_script
  • external deps: 10 (anyhow, glamx, hecs, indexmap, rustc-hash, serde, toml, tracing, …)
  • public surface: 29 fn, 24 struct, 2 enum, 1 trait, 4 const, 8 type
  • traits: Plugin
  • structs: App, AppConfig, Children, ComponentDef, ComponentRegistry, Engine, EngineOp, GlobalTransform, LogEntry, Name, NodeOp, Pack, Parent, Pcg32, ProjectManifest, ProjectRoot, Resources, RngState, SceneKeyRegistry, ScriptArgs, ScriptAttachment, ScriptSetup, StableId, Transform
  • enums: Command, Stage

balaur_input

Balaur input plugin: backend-agnostic input state and the input Lua module

Input as a Balaur plugin.

  • workspace deps: balaur_core, balaur_script
  • external deps: 2 (anyhow, tracing)
  • public surface: 1 fn, 2 struct, 2 const
  • structs: InputPlugin, InputSnapshot

balaur_physics

Balaur plugin wrapping the Rapier physics engine

Rapier physics as a Balaur plugin.

  • workspace deps: balaur_core, balaur_script
  • external deps: 6 (anyhow, glamx, rapier2d, rapier3d, toml, tracing)
  • public surface: 4 fn, 3 struct, 3 const
  • structs: PhysicsPlugin, PhysicsState, PhysicsState2d

balaur_render

Balaur rendering plugin: renderable components, with a kiss3d backend

Rendering as a Balaur plugin.

  • workspace deps: balaur_core, balaur_input, balaur_script, balaur_ui
  • external deps: 10 (anyhow, glamx, image, kiss3d, objc2, objc2-app-kit, objc2-foundation, pollster, …)
  • public surface: 1 fn, 15 struct, 2 enum, 2 type
  • structs: AppIconConfig, CameraConfig, CameraConfig2d, CameraInputConfig, ClearColorConfig, DebugLineBuffer, DebugLineBuffer2d, GridConfig, RenderPlugin, Renderable, Renderable2d, ScreenshotRequest, ViewportSnapshot, ViewportSnapshot2d, WindowedBackend
  • enums: Shape, Shape2d

balaur_script

Language-neutral scripting seam: traits only, no backend.

The scripting seam: traits only, no backend.

  • workspace deps: none
  • external deps: 1 (anyhow)
  • public surface: 1 fn, 3 struct, 1 enum, 8 trait, 1 type
  • traits: Bindings, BindingsExt, CallbackHost, FromArg, FromArgs, IntoValue, ScriptCompiler, ScriptHost
  • structs: CallbackId, NoBindings, NodeId
  • enums: Value

balaur_script_luau

The Luau script host: loading, instancing, hot reload, precompiled packs.

  • workspace deps: balaur_core, balaur_script
  • external deps: 8 (anyhow, glamx, hecs, libm, mlua, notify, toml, tracing)
  • public surface: 5 fn, 4 struct, 1 const
  • structs: Compiler, LuaModule, NodeRef, ScriptHost

balaur_script_rune

The Rune script host: loading, instancing, hot reload, precompiled packs.

  • workspace deps: balaur_core, balaur_script
  • external deps: 6 (anyhow, hecs, indexmap, notify, rune, tracing)
  • public surface: 1 fn, 6 struct
  • structs: Color, Node, RuneHost, RuneModule, Vec2, Vec3

balaur_ui

Balaur UI plugin: an immediate-mode egui API for Luau scripts

Immediate-mode UI for scripts, rendered with egui.

  • workspace deps: balaur_core, balaur_script
  • external deps: 5 (anyhow, egui, image, toml, tracing)
  • public surface: 1 fn, 6 struct, 4 const
  • structs: ThemeTokens, UiConfig, UiPlugin, UiState, Widget, WidgetLayerConfig