Crates Overview

Jugar is organized as a workspace with multiple specialized crates.

Crate Structure

crates/
├── jugar/               # Main entry point
├── jugar-core/          # ECS, Game Loop, Components
├── jugar-physics/       # Rigid body simulation
├── jugar-ai/            # GOAP, Behavior Trees
├── jugar-render/        # Viewport, Anchors
├── jugar-ui/            # Widget system
├── jugar-input/         # Touch/Mouse/KB/Gamepad
├── jugar-audio/         # Spatial 2D audio
├── jugar-procgen/       # Noise, Dungeons, WFC
├── jugar-yaml/          # Declarative game definitions
├── jugar-probar/        # WASM-native testing
├── jugar-probar-derive/ # Proc-macro for type-safe selectors
├── jugar-web/           # Web platform bindings
└── physics-toy-sandbox/ # Physics demo crate

Summary Table

CrateDescriptionTests
jugarMain entry point, JugarEngine17
jugar-coreECS, Game Loop, Components52
jugar-physicsRigid body simulation7
jugar-aiGOAP, Behavior Trees17
jugar-renderViewport, Anchors10
jugar-uiWidget system10
jugar-inputTouch/Mouse/KB/Gamepad10
jugar-audioSpatial 2D audio21
jugar-procgenNoise, Dungeons, WFC18
jugar-yamlELI5 YAML-First declarative games334
jugar-probarRust-native WASM game testing128
jugar-webWASM Web platform95

Total: 1500+ tests

Dependency Graph

jugar (entry)
├── jugar-core
│   └── hecs, glam
├── jugar-physics
│   └── trueno (SIMD/GPU)
├── jugar-ai
│   └── aprender (ML)
├── jugar-render
│   └── trueno-viz
├── jugar-ui
│   └── jugar-render
├── jugar-input
├── jugar-audio
└── jugar-procgen

Feature Flags

Each crate supports optional features:

[dependencies]
jugar = { version = "0.1", features = ["full"] }
FeatureIncludes
defaultCore engine
aijugar-ai
audiojugar-audio
procgenjugar-procgen
yamljugar-yaml
fullAll features