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