Code for "Zero To Production In Rust", a book on API development using Rust.
Go to file
2022-03-14 11:43:27 +00:00
.cargo Add linker configuration 2022-03-11 22:45:22 +00:00
.github/workflows Fix CI 2022-03-14 10:58:08 +00:00
configuration Add login form with errors via HMAC-protected query parameters 2022-03-12 00:45:26 +00:00
migrations Implement password hashing using Argon2, with PHC string format as storage encoding. 2021-08-29 22:09:43 +02:00
scripts Do not use backticks - they lead to the script trying to execute the quoted command. 2021-12-28 12:20:13 +01:00
src Add login form with errors via HMAC-protected query parameters 2022-03-12 00:45:26 +00:00
tests/api Update to latest version of actix-web, tracing-bunyan-formatter and tracing-subscriber. Use tokio macros instead of actix-web's macros. 2021-12-26 17:03:38 +01:00
.dockerignore Refactor structure to use one root branch per chapter. 2020-12-05 17:19:11 +00:00
.env Refactor structure to use one root branch per chapter. 2020-12-05 17:19:11 +00:00
.gitignore Scaffolding 2020-08-23 11:34:29 +01:00
Cargo.lock Add login form with errors via HMAC-protected query parameters 2022-03-12 00:45:26 +00:00
Cargo.toml Add login form with errors via HMAC-protected query parameters 2022-03-12 00:45:26 +00:00
Dockerfile Install ca-certificates in the runtime layer 2022-03-14 11:43:27 +00:00
LICENSE-APACHE Add licensing information. 2021-06-06 14:11:19 +01:00
LICENSE-MIT Add licensing information. 2021-06-06 14:11:19 +01:00
README.md Update README 2022-03-14 11:30:45 +00:00
spec.yaml Update spec 2022-03-14 11:30:41 +00:00
sqlx-data.json Fix CI 2022-03-14 10:58:08 +00:00

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:

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

Linux

# Ubuntu 
sudo apt-get install lld clang
# Arch 
sudo pacman -S lld clang

MacOS

brew install michaeleisel/zld/zld

How to build

Launch a (migrated) Postgres database via Docker:

./scripts/init_db.sh

Launch cargo:

cargo build

How to test

Launch a (migrated) Postgres database via Docker:

./scripts/init_db.sh

Launch cargo:

cargo test