Install Rust as described here.
SQLx is an async, pure Rust SQL crate featuring compile-time checked queries without a DSL.
SQLx-CLI is SQLx's associated command-line utility for managing databases, migrations, and enabling "offline" mode with sqlx::query!() and friends.
It is published on the Cargo crates registry as sqlx-cli
and can be installed like so:
cargo install sqlx-cli --features postgres
The following script will start the latest version of Postgres using Docker, create the database and run the migrations.
./scripts/init_db.sh
There are 3 steps to building with "offline mode":
- Enable the SQLx's Cargo feature offline
- E.g. in your Cargo.toml, sqlx = { features = [ "offline", ... ] }
- Save query metadata for offline usage
cargo sqlx prepare
- Build
With everything else set up, all you need to do at this point is:
cargo run
If successful, the API server is now listening at port 8080.
Use cargo-watch
for hot reloading the server.
cargo watch -x run
Follow the documentation here
curl https://get.volta.sh | bash
npm run install
npx tailwindcss -i ./input.css -o ./assets/output.css --watch
Run unit tests with:
cargo test
Format with:
cargo fmt --check
Lint with:
cargo clippy -- -D warnings
Check code coverage:
cargo tarpaulin --verbose --workspace
This application relies on Digital Ocean's App Platform for its CD pipeline. Install Digital Ocean's CLI doctl to interact with platform.
To deploy a new instance of the application on Digital Ocean run:
doctl apps create --spec spec.yaml
then migrate the production database with:
DATABASE_URL=<connection-string> sqlx migrate run
Licensed under MIT license. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, shall be licensed as above, without any additional terms or conditions.