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 Repo | New Crate | Role |
|---|---|---|
| paiml/trueno | aprender-compute | SIMD/GPU compute |
| paiml/trueno-gpu | aprender-gpu | CUDA PTX kernels |
| paiml/realizar | aprender-serve | Inference server |
| paiml/entrenar | aprender-train | Training loops |
| paiml/batuta | aprender-orchestrate | Agents, RAG |
| paiml/provable-contracts | aprender-contracts | Contract enforcement |
| paiml/renacer | aprender-profile | Profiling |
| paiml/presentar | aprender-present-* | TUI framework |
| paiml/trueno-db | aprender-db | Embedded analytics |
| paiml/trueno-graph | aprender-graph | Graph database |
| paiml/trueno-rag | aprender-rag | RAG pipeline |
| + 9 more | aprender-* | 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 --workspacecatches everything - One install:
cargo install aprendergets the whole stack
See: APR-MONO spec