feat(server): embed SPA via memory-serve behind embed-web feature

Adds `memory-serve` 2.1 as an optional workspace dependency, a `build.rs`
that runs `load_directory` only when `CARGO_FEATURE_EMBED_WEB` is set, a
`web_assets` module serving `web/dist` at `/` with SPA fallback (200 OK)
for unknown client-side routes, and a feature-gated integration test.

The default build (no feature) compiles and tests cleanly without `web/dist`.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 23:22:26 +02:00
parent 1d1be5fbe9
commit 7170be016d
7 changed files with 240 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
fn main() {
if std::env::var("CARGO_FEATURE_EMBED_WEB").is_ok() {
memory_serve::load_directory("../../web/dist");
}
}