Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Welcome

CodeCora Rust Learning Hub — the internal course for engineers learning Rust the way we actually use it: production-flavored, project-first.

Why this exists

Everything we ship at CodeCora is Rust-shaped: Uteke (search engine), Sinau LMS (Axum + sqlx), nginjen (Axum scraper), vecq, gatehouse, Bifrost tooling — all Axum services, sqlx-backed, tokio-async. This course teaches exactly that stack, in the order the stack demands it.

How this course works

Every module is a project you build and keep, not a tour of language features. Foundational theory shows up just in time, inside the project it serves.

Each chapter follows the same shape:

  1. Goal — one observable capability (“you can X”).
  2. Concepts — the minimum theory, concept-first.
  3. Lab walkthrough — real, verified code from the labs/ directory.
  4. Exercises — concrete tasks with a checkable “done” criterion.

Every code sample in this book compiles and passes cargo test, cargo clippy -D warnings, and cargo fmt on Rust 1.96 (the toolchain we standardize on). The labs live in labs/ — clone, run, break, fix.

Curriculum at a glance

ModuleProject you keepRust you internalize
GateTested CLI binarytoolchain, cargo, panic vs error
M1Log parser CLIownership, borrowing, structs, enums
M2Error-typed parser libResult, ?, Display, From, error codes
M3Search/filter enginetraits, generics, iterators, tests
M4Concurrent fetcherasync/await, tokio, select, timeouts
M5REST API (Axum)routers, extractors, middleware, state
M6Persistence layersqlx, migrations, SQLite/Postgres
M7CI-hardened serviceclippy, fmt, tests, GH Actions gates
M8 + CapstoneMini search serviceworkspace crates, end-to-end assembly

Ground rules

  • Tested means live. Nothing is “done” because it compiles — it is done when the test suite is green and the binary behaves.
  • No unsafe, no unwrap() in production paths. Panics are for programmer bugs; user input problems are values (Result), never crashes.
  • One error enum per crate. The M2 pattern is the house style — you will see it again in every Axum service we run.
  • English artifacts. Code, comments, commits — all English (house standard).

This site is private — internal use only. Do not share links outside the team.