Skip to content

milad00ahmadi/zero-to-production-with-smtp

Repository files navigation

Zero To Production In Rust

"Zero To Production In Rust" is an excellent book about backend development with Rust by Luca Palmieri. However, the book is based on Postmark, which is not available in all countries, such as Iran. Therefore, as I was reading the book, I decided to rewrite the books project using the Lettre crate, which uses SMTP for email transportation.

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" sqlx-cli --no-default-features --features rustls,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" sqlx-cli --no-default-features --features rustls,postgres

MacOS

brew install michaeleisel/zld/zld
cargo install --version="~0.6" sqlx-cli --no-default-features --features rustls,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

You 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

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 

About

"Zero To Production In Rust" with smtp client instead of postmark

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published