Soliloquy is an experimental browser appliance built around a Rust shell, Servo integration work, a V8 runtime layer, and an Alpine-based runtime image. The repository also contains older architecture notes and adjacent experiments, but the code that is wired up today is primarily Linux/Alpine-focused.
This project is early-stage and not production-ready.
The root workspace currently contains four Rust packages:
src/-soliloquy_browser_optimizationssrc/shell/-soliloquy-shellsrc/rv8/-rv8sold/-sold
Other important top-level areas:
system/alpine/- appliance rootfs assembly, staging, and QEMU scriptsui/desktop/- Svelte appliance UI used by the dev flow and Alpine stagingbundle/- static UI assets served bysoldthird_party/servo/- in-tree Servo checkout used by the Alpine flowdocs/- project docs for the current Cargo, Bun, Alpine, Servo/RV8, andsoldpaths
soliloquy-shellhandles shell/runtime concerns, networking, platform integration, and the Servo/V8 bridgesoliloquy_browser_optimizationsprovides cache, memory residency, GPU, network, and V8 support modulesrv8is the experimental browser/runtime engine crate with IPC, rendering, parsing, and JS execution pathssoldis a local Axum service that serves bundled UI assets and simple file/settings APIssystem/alpinepackages the runtime into an appliance-style Alpine image and boots it under QEMUthird_party/servois an in-tree Servo checkout with localrv8bridge patches and a typed snapshot bridge module
cargo build
cargo testTargeted packages:
cargo test -p soliloquy-shell
cargo test -p rv8
cargo test -p sold./scripts/dev.sh
./scripts/dev.sh --shell-only
./scripts/dev.sh --ui-only
./scripts/dev.sh --qemu./scripts/dev.sh starts the Rust shell and the Svelte UI dev server from ui/desktop/.
./system/alpine/scripts/setup-host.sh
./system/alpine/scripts/qemu-v0.shMore detail lives in system/alpine/README.md.
Current build paths:
Cargois the clearest active path for local Rust worksystem/alpine/scripts/*is the clearest active path for appliance packaging and QEMU bootBunis the only JavaScript package manager used for the Svelte UI
- Servo has a backend selection seam controlled by
SOLILOQUY_JS_ENGINE v8-experimentalis a real mode, but unsupported work still falls back to Servo's existingmozjspath- the current bridge covers simple literals,
+expressions, structuredwindow.__soliloquyEval(...)calls, and live snapshot-backed reads/writes for a narrow DOM surface - the live snapshot bridge has been extracted into
third_party/servo/components/servo/soliloquy_bridge.rs cargo test --manifest-path src/shell/Cargo.toml --libpasses locallybun run checkandbun run buildpass locally inui/desktop, with the same CSS compatibility warning as before- Servo-side Rust validation is still blocked in this environment by the existing
mozangle/ Apple LLVM header issue
- CLAUDE.md for a concise repo-operating guide
- system/alpine/README.md for the appliance path
- docs/v0-architecture.md and docs/architecture/appliance-system.md for broader design context
- src/README.md for the optimization library internals
- docs/rv8_linkage_roadmap.md for the current bridge plan and remaining work