Daniel Karzel
d54a5d1b2e
|
3 years ago | |
---|---|---|
.. | ||
migrations | 3 years ago | |
src | 3 years ago | |
tests | 3 years ago | |
Cargo.toml | 3 years ago | |
README.md | 3 years ago | |
build.rs | 3 years ago | |
clippy.toml | 3 years ago | |
prepare_db.sh | 3 years ago | |
sqlx-data.json | 3 years ago |
README.md
Maker & Taker Daemon
Daemon that enables the frontend. The frontend is just a very thin display layer, the daemon does all the heavy lifting and calculations.
Database
We use an sqlite
database managed by sqlx
.
To make sqlx
handle the rust types correctly you have to generate sqlx-data.json
file upon every query change.
So, if you develop on the DB and change queries you will have to update the sqlx
rust mappings like this:
# crated temporary DB
DATABASE_URL=sqlite:tempdb cargo sqlx database create
# run the migration scripts to create the tables
DATABASE_URL=sqlite:tempdb cargo sqlx migrate run
# prepare the sqlx-data.json rust mappings
DATABASE_URL=sqlite:./daemon/tempdb cargo sqlx prepare -- --bin taker
Currently the database for taker and maker is the same.
The taker
binary is used as an example to run the prepare
command above, but it is irrelevant if you run it for taker or maker.
The tempdb
created can be deleted, it should not be checked into the repo.
You can keep it around and just run the prepare
statement multiple times when working on the database.
Logging
maker
and taker
both make use of a log library which can be controlled using the environment variable RUST_LOG
.
By default, logging is set to debug
for application specific logs only.
If you want to see logs by third party libraries, you need to set RUST_LOG=
.
For example, to enable logs for rocket, use:
RUST_LOG=rocket=debug cargo run --bin taker
Additionally, logs can be formatted in json format by passing --json
or -j
.