Zero To Production In Rust is an opinionated introduction to backend development using Rust.
This repository serves as supplementary material for the book: it hosts several snapshots of the codebase for our email newsletter project as it evolves throughout the book.
The main branch shows the project at the end of the book.
You can browse the project at the end of previous chapters by switching to their dedicated branches:
- Chapter 3, Part 0
- Chapter 3, Part 1
- Chapter 4
- Chapter 5
- Chapter 6, Part 0
- Chapter 6, Part 1
- Chapter 7, Part 0
- Chapter 7, Part 1
- Chapter 7, Part 2
- Chapter 8
- Chapter 9
- Chapter 10, Part 0
- Chapter 10, Part 1
- Chapter 10, Part 2
- Chapter 10, Part 3
- Chapter 11
You'll need to install:
There are also some OS-specific requirements.
cargo install -f cargo-binutils
rustup component add llvm-tools-previewcargo install --version="~0.7" sqlx-cli --no-default-features --features rustls,postgres
# Ubuntu
sudo apt-get install lld clang libssl-dev postgresql-client
# Arch
sudo pacman -S lld clang postgresqlcargo install --version="~0.7" sqlx-cli --no-default-features --features rustls,postgres
brew install michaeleisel/zld/zldcargo install --version="~0.7" sqlx-cli --no-default-features --features rustls,postgres
Launch a (migrated) Postgres database via Docker:
./scripts/init_db.shLaunch a Redis instance via Docker:
./scripts/init_redis.shLaunch cargo:
cargo buildYou can now try with opening a browser on http://127.0.0.1:8000/login after
having launch the web server with cargo run.
There is a default admin account with password
everythinghastostartsomewhere. The available entrypoints are listed in
src/startup.rs
Launch a (migrated) Postgres database via Docker:
./scripts/init_db.shLaunch a Redis instance via Docker:
./scripts/init_redis.shLaunch cargo:
cargo test 