feat(highscores): add SQLite Axum service
Add a small standalone Axum service for the shared anonymous top-ten table. SQLite keeps the deployment self-contained, while one transaction inserts a validated name and score and removes entries below the canonical top ten. Expose a health endpoint and same-origin API, with an nginx proxy block and run instructions beside the service. Keep the service outside the game crate so native gameplay persistence remains unchanged. Test Plan: - `cargo test --manifest-path highscore-server/Cargo.toml` -- passed (3 tests) - `cargo clippy --manifest-path highscore-server/Cargo.toml --all-targets --all-features -- -D warnings` -- passed - `cargo +nightly fmt --manifest-path highscore-server/Cargo.toml -- --check` -- passed - Live executable health, POST, and GET smoke test -- passed - `git diff --cached --check` -- passed
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
[package]
|
||||
name = "tdkpin-highscore-server"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
publish = false
|
||||
|
||||
[dependencies]
|
||||
axum = "0.8"
|
||||
rusqlite = { version = "0.37", features = ["bundled"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
tokio = { version = "1", features = ["macros", "net", "rt-multi-thread"] }
|
||||
|
||||
[dev-dependencies]
|
||||
http-body-util = "0.1"
|
||||
tempfile = "3"
|
||||
tower = { version = "0.5", features = ["util"] }
|
||||
Reference in New Issue
Block a user