ch-rds
ch-rds resolves runtime resources and starts conventional local services when
an application uses loopback endpoints.
More information is available in the API documentation.
High-level features
- Typed loaders for web listeners, MariaDB, and SpacetimeDB
- Explicit production behavior with no local fallback
- Conventional
.env,.env.local, andservices.envdiscovery - Health-gated, protocol-verified Docker Compose startup for loopback resources
- Optional frontend/backend development process orchestration
Usage
async
Runtime resolves configured remote endpoints directly. Production mode
rejects local fallbacks. ENV_FILE selects one explicit dotenv file, while
PORT overrides only the port of the fallback listener address.
Conventional layouts auto-discover MariaDB and
crates/database/spacetimedb; builders cover custom stacks. Protocol-level
readiness is checked only after Docker reports the service healthy. One locked
service restart remains available for a previously healthy but persistently
broken endpoint; containers are not restarted while their first initialization
is still in progress. SpacetimeDB updates publish in place to preserve data and
identity.
Development runner
The dev feature provides ProjectProfile and run_project. Vite owns frontend
hot-module replacement; Watchexec restarts the backend when Rust sources,
manifests, lockfiles, Cargo configuration, or SQL migrations change.
cargo install watchexec-cli --version 2.5.1 --locked
Feature flags
| Feature | Provides |
|---|---|
dev |
Frontend/backend process orchestration and project profiles |
btcpay |
Local BTCPay setup in addition to dev |
Minimum supported Rust version
ch-rds requires Rust 1.96 or newer.
License
Licensed under the Sustainable Use License 1.0. See
LICENSE.md.