This is my repo to practice and learn production coding. A place where I experiment and figure out how to make a production grade web server from scartch. Hence this repo will slowly evolve as I learn new practices and learning how to implement them in Rust.
Much appreciation and thanks to Jeremy Chone and his production coding tutorial series! I learned a tremendous ammount from his tutorial series as well as discussing software development with him on his discord server. Needlesss to say, his material is a main inspiration for this on going project
Evenetually I'd like to deploy a k8s cluster with this repo but I am currently learning Kubernetes.
# Start postgresql server docker image:
docker run --rm --name pg -p 5432:5432 \
-e POSTGRES_PASSWORD=welcome \
postgres:15
# (optional) To have a psql terminal on pg.
# In another terminal (tab) run psql:
docker exec -it -u postgres pg psql
# (optional) For pg to print all sql statements.
# In psql command line started above.
ALTER DATABASE postgres SET log_statement = 'all';
NOTE: Install cargo watch with
cargo install cargo-watch
.
# Terminal 1 - To run the server.
cargo watch -q -c -w crates/services/web-server/src/ -w crates/libs/ -w .cargo/ -x "run -p web-server"
# Terminal 2 - To run the quick_dev.
cargo watch -q -c -w crates/services/web-server/examples/ -x "run -p web-server --example quick_dev"
# Terminal 1 - To run the server.
cargo run -p web-server
# Terminal 2 - To run the tests.
cargo run -p web-server --example quick_dev
cargo watch -q -c -x "test -- --nocapture"
# Specific test with filter.
cargo watch -q -c -x "test -p lib-core test_create -- --nocapture"
cargo test -- --nocapture
cargo watch -q -c -x "test -p lib-core model::task::tests::test_create -- --nocapture"
cargo run -p gen-key
More resources for Rust for Production Coding