tirzasrwn / zero2seisan

Learning rust for production ready.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

zero2seisan

About

Learning rust for production ready. zero2seisan should be read in Japanese, zero ni seisan (0 に 生産), means zero to production.

Requirement

  • cargo-watch
  • cargo-tarpaulin
  • clippy
  • rustfmt
  • cargo-audit
  • clang
  • lld
  • sqlx-cli
  • postgresql-client-14
  • postgresql-client-common
  • cargo-undeps
  • bunyan

Command

# Install nightly compiler.
rustup toolchain install nightly --allow-downgrade
# Linux watch like. Run cargo check, test, and run on save.
cargo watch -x check -x test -x run
# Enable trace log.
RUST_LOG=trace cargo run
# Pipe the output to bunyan for more readeble output.
RUST_LOG=trace cargo run | bunyan
# Build docker image.
docker build --tag zero2seisan --file Dockerfile .
# Run docker image.
docker run -p 8000:8000 zero2seisan
# Generate .sqlx directory for offline mode sqlx.
cargo sqlx prepare --workspace

Database migration

export DATABASE_URL=postgres://postgres:password@127.0.0.1:5432/newsletter
sqlx database create
sqlx migrate add create_subscriptions_table
sqlx migrate run

Curl Test

curl -d "name=le%20guin&email=ursula_le_guin%40gmail.com" -X POST http://localhost:8000/subscriptions -v

About

Learning rust for production ready.

License:GNU General Public License v2.0


Languages

Language:Rust 84.2%Language:Shell 9.6%Language:Dockerfile 6.2%