Files
marathon/.serena/memories/codebase_structure.md
Sienna Meridian Satterwhite 99e31b1157 removed bincode for rkyv
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2025-12-17 19:20:34 +00:00

3.3 KiB

Codebase Structure

Workspace Organization

aspen/
├── crates/
│   ├── app/              # Main application
│   │   ├── src/
│   │   │   ├── main.rs         # Entry point
│   │   │   ├── camera.rs       # Camera system
│   │   │   ├── cube.rs         # 3D cube demo
│   │   │   ├── debug_ui.rs     # Debug overlays
│   │   │   ├── engine_bridge.rs # Bridge to EngineCore
│   │   │   ├── input/          # Input handling
│   │   │   ├── rendering.rs    # Rendering setup
│   │   │   ├── selection.rs    # Object selection
│   │   │   ├── session.rs      # Session management
│   │   │   ├── session_ui.rs   # Session UI
│   │   │   └── setup.rs        # App initialization
│   │   └── Cargo.toml
│   │
│   ├── libmarathon/      # Core library
│   │   ├── src/
│   │   │   ├── lib.rs          # Library root
│   │   │   ├── sync.rs         # Synchronization primitives
│   │   │   ├── engine/         # Core engine logic
│   │   │   ├── networking/     # P2P networking, gossip
│   │   │   ├── persistence/    # Database and storage
│   │   │   ├── platform/       # Platform-specific code
│   │   │   │   ├── desktop/    # macOS executor
│   │   │   │   └── ios/        # iOS executor
│   │   │   └── debug_ui/       # Debug UI components
│   │   └── Cargo.toml
│   │
│   ├── sync-macros/      # Procedural macros for sync
│   │   └── src/lib.rs
│   │
│   └── xtask/            # Build automation
│       ├── src/main.rs
│       └── README.md
│
├── scripts/
│   └── ios/              # iOS-specific build scripts
│       ├── Info.plist          # iOS app metadata
│       ├── Entitlements.plist  # App capabilities
│       ├── deploy-simulator.sh # Simulator deployment
│       └── build-simulator.sh  # Build for simulator
│
├── docs/
│   └── rfcs/             # Architecture RFCs
│       ├── README.md
│       ├── 0001-crdt-gossip-sync.md
│       ├── 0002-persistence-strategy.md
│       ├── 0003-sync-abstraction.md
│       ├── 0004-session-lifecycle.md
│       ├── 0005-spatial-audio-system.md
│       └── 0006-agent-simulation-architecture.md
│
├── .github/
│   └── ISSUE_TEMPLATE/   # GitHub issue templates
│       ├── bug_report.yml
│       ├── feature.yml
│       ├── task.yml
│       ├── epic.yml
│       └── support.yml
│
├── Cargo.toml            # Workspace configuration
├── Cargo.lock            # Dependency lock file
└── rustfmt.toml          # Code formatting rules

Key Patterns

  • ECS Architecture: Uses Bevy's Entity Component System
  • Platform Abstraction: Separate executors for desktop/iOS
  • Engine-UI Separation: EngineCore runs in background thread, communicates via EngineBridge
  • CRDT-based Sync: All shared state uses CRDTs for conflict-free merging
  • RFC-driven Design: Major decisions documented in docs/rfcs/