mirror of
https://github.com/LukeMathWalker/zero-to-production.git
synced 2024-11-21 16:21:01 +00:00
Code for "Zero To Production In Rust", a book on API development using Rust.
.cargo | ||
.github/workflows | ||
configuration | ||
migrations | ||
scripts | ||
src | ||
tests/api | ||
.dockerignore | ||
.env | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
Dockerfile | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
spec.yaml | ||
sqlx-data.json |
Zero To Production In Rust
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.
Chapter snapshots
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
Pre-requisites
You'll need to install:
There are also some OS-specific requirements.
Windows
cargo install -f cargo-binutils
rustup component add llvm-tools-preview
cargo install --version=0.6.0 sqlx-cli --no-default-features --features postgres
Linux
# Ubuntu
sudo apt-get install lld clang libssl-dev postgresql-client
# Arch
sudo pacman -S lld clang postgresql
cargo install --version=0.6.0 sqlx-cli --no-default-features --features postgres
MacOS
brew install michaeleisel/zld/zld
cargo install --version=0.6.0 sqlx-cli --no-default-features --features postgres
How to build
Launch a (migrated) Postgres database via Docker:
./scripts/init_db.sh
Launch a Redis instance via Docker:
./scripts/init_redis.sh
Launch cargo
:
cargo build
How to test
Launch a (migrated) Postgres database via Docker:
./scripts/init_db.sh
Launch a Redis instance via Docker:
./scripts/init_redis.sh
Launch cargo
:
cargo test