Monorepo Layout

Aprender is a monorepo with 70 workspace crates in flat crates/aprender-* layout, following the same pattern as Polars (28 crates), Burn (33 crates), and Nushell (40+ crates).

Directory Structure

paiml/aprender/
├── Cargo.toml                    # Workspace root + cargo install aprender
├── src/bin/apr.rs                # Binary entry point
├── crates/
│   ├── aprender-core/            # ML library (use aprender::*)
│   ├── apr-cli/                  # CLI logic (57 commands)
│   ├── aprender-compute/         # SIMD/GPU compute
│   ├── aprender-gpu/             # CUDA PTX kernels
│   ├── aprender-serve/           # Inference server
│   ├── aprender-train/           # Training loops
│   ├── aprender-orchestrate/     # Agents, RAG
│   ├── aprender-contracts/       # Provable contracts
│   ├── aprender-profile/         # Profiling
│   └── ... (70 crates total)
├── contracts/                    # 405 provable YAML contracts
├── book/                         # This book
└── docs/specifications/          # Design specs

Consolidated from 20 Repos

Old RepoNew CrateRole
paiml/truenoaprender-computeSIMD/GPU compute
paiml/trueno-gpuaprender-gpuCUDA PTX kernels
paiml/realizaraprender-serveInference server
paiml/entrenaraprender-trainTraining loops
paiml/batutaaprender-orchestrateAgents, RAG
paiml/provable-contractsaprender-contractsContract enforcement
paiml/renaceraprender-profileProfiling
paiml/presentaraprender-present-*TUI framework
paiml/trueno-dbaprender-dbEmbedded analytics
paiml/trueno-graphaprender-graphGraph database
paiml/trueno-ragaprender-ragRAG pipeline
+ 9 moreaprender-*Various

All old repos are archived (read-only). Development happens here.

Why Monorepo?

  • Zero version skew: all 70 crates share one version (0.29.0)
  • Atomic changes: cross-crate refactoring in one PR
  • One CI pipeline: cargo test --workspace catches everything
  • One install: cargo install aprender gets the whole stack

See: APR-MONO spec