Roadmap & Lab Index
Status
| Module | Chapter(s) | Lab | Status |
|---|---|---|---|
| Gate | Setup & Toolchain · First Program | gate-hello | ✅ live |
| M1 — Ownership | Ownership · Structs/Enums | m1-logpar | ✅ live |
| M2 — Errors | Errors as Values | m2-errlib | ✅ live |
| M3 — Traits & Testing | Traits, Generics, Testing | m3-search | ✅ live |
| M4 — Async | Tasks, Timeouts, Backpressure | m4-batch | ✅ live |
| M5 — HTTP Services | Axum API | m5-notes-api | ✅ live |
| M6 — Persistence | sqlx + SQLite | m6-notes-db | ✅ live |
| M7 — Production Hygiene | CI Gates & Release | (CI file) | ✅ live |
| M8 — Capstone | Assemble the Mini Service | your repo | guided build |
Also on lms.codecora.dev → course Rust Foundations (CodeCora Engineering Track) (private; login required): the same pilot content as structured chapters with enrollment tracking.
Capstone follow-ups (post-course, pick your depth)
crates/search— M3 engine behind a trait, indexing the notes tablecrates/ingest— M4 semaphore + JoinSet bulk loader- Postgres backend — swap connect options, keep every query pattern
- Axum middleware layer — rate limiting + request IDs (Sinau’s hardening pattern)
House rules recap
- Tested means live: green tests + behaving binary, not just “it compiles”.
- The loop:
cargo fmt && cargo clippy --all-targets -- -D warnings && cargo test. - No
unsafe, nounwrap()on user input in production paths. - One error enum per crate; render status codes at the boundary only.
- Backpressure or it didn’t happen: cap concurrency before spawning.
- English artifacts, versioned schema, CI gates everything.