This website is a complicated and not-so-funny joke about how the game, BattleBit Remastered, has not been updated in over a year and a half despite promises. More info about this be found at https://updatecountdown.com/battlebit#info.
- cargo - Rust package manager
- esbuild - an extremely fast bundler for the web
- minify - Go minifiers for web formats
- TimeScaleDB - time-series database packaged as a Postgres extension
- upx (optional) - executable file compressor
With upx (compresses binary size):
sh build.shOr, without upx:
RUSTFLAGS="-C target-cpu=native" cargo build --releasenix develop .#build -c $SHELL
sh build.shcargo build --release
-
Have a PostgreSQL server running with TimeScaleDB installed. Either self-hosted or using TigerData.
-
To set the connection parameters, you can set the PostgreSQL environment variables as needed. (e.g.
PGHOST,PGPORT,PGDATABASE,PGUSER,PGPASSWORD) -
Copy the
save-EXAMPLE.jsonfile to create asave.jsonfile and modify the datetime as you like. Note that multiple entries/pages is not yet supported. -
Build the project and run the binary:
./target/release/update-countdown
- Make collecting time series data optional (i.e. place behind a feature flag)
- Add Docker/Containerization support
- Add other game pages (e.g. Battlefront II, Silksong, Half-Life 3)
- Add home & statistics page
- Config file to change settings (e.g. port, DB URL)
- Save page state to DB (overkill maybe?)
- Frontend: HTML + Askama, CSS, JS (with JSDoc)
- Bundler: esbuild, minify
- Backend: axum
- Database: PostgreSQL with TimeScaleDB (for collecting time series data)
Motivation: Simple, fast, memory efficient, few dependencies
