Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Cargo features & platform support

boatramp is one binary of feature-gated crates, but the default build is batteries-included: it enables every non-conflicting feature, so a plain cargo build, the Nix/OCI images, and the release binaries all ship the full capability set — there is no “the server was built without X”. This page lists the cargo features (all default-on) and then which capabilities are Linux-only. To build a minimal binary instead, see Build from source.

Cargo build features

Every feature below is on by default. The whole set composes (there are no mutually-exclusive features; the runtime --blobs / --kv / --tls selectors pick among the compiled-in backends), and the nightly --all-features gate proves it. Should a feature ever genuinely conflict with another, it would be dropped from the default and shipped as its own build variant.

For a minimal build, opt out and name only what you want:

cargo build --release -p boatramp --no-default-features --features fs,slatedb

Some features imply others: http3/acme-dns imply tls; cluster implies handlers + slatedb; operator implies cluster; each sql-* implies handlers.

FeatureDefaultEnables
fsyesFilesystem blob backend (--blobs fs).
slatedbyesThe default --kv slatedb: a durable transactional LSM over an object_store backend.
s3yesS3 blob backend (--blobs s3) + its S3→SQS blob-change notification provider.
gcsyesGoogle Cloud Storage blob backend (--blobs gcs) + its GCS→Pub/Sub notification provider.
azureyesAzure Blob Storage backend (--blobs azure) + its Event Grid→Storage Queue notification provider.
cloudflare-kvyesCloudflare KV metadata backend.
tlsyesHTTPS: --tls custom (operator cert) and --tls acme (automatic certs).
acme-dnsyesWildcard TLS via ACME DNS-01 plus the dns subcommand (--tls acme-dns) and the pluggable DNS-provider clients. Implies tls.
http3yesHTTP/3 (QUIC) serving alongside the TLS TCP listener. Implies tls.
oidcyesOIDC → token exchange: verify serve against an OIDC issuer’s JWKS.
signer-awsyesExternal token signer backed by AWS KMS.
signer-gcpyesExternal token signer backed by GCP KMS.
signer-azureyesExternal token signer backed by Azure Key Vault.
signer-vaultyesExternal token signer backed by HashiCorp Vault.
signer-pkcs11yesExternal token signer backed by a PKCS#11 HSM.
compressionyesOn-the-fly response compression, opt-in per site.
bundleryesThe in-process JS/TS + CSS bundler for boatramp bundle.
handlersyesThe wasmtime handler engine, component validation at sync, and the sql handler binding (with the typed orm query builder over the same databases).
clusteryesSelf-hosted Raft cluster mode. Implies handlers and slatedb.
sql-postgresyesExternal (bring-your-own) PostgreSQL for the handler sql binding, opened by name. Implies handlers.
sql-mysqlyesExternal (bring-your-own) MySQL/MariaDB for the handler sql binding, opened by name. Implies handlers.
consoleyesBake the web management console (a Wasm SPA) into the binary; serve it at an operator-configured host+path ([serve.console]). On in every shipped build (release binaries + Nix/OCI images), which stage the built SPA in; a from-source build embeds a placeholder unless you build the SPA first with just console.
mcpyesThe Model Context Protocol server: the boatramp mcp stdio subcommand + the HTTP /mcp endpoint on serve. Also enables boatramp-server/mcp.

Two more features are on by default but omitted from the table above: domain-verify-dns (verify a host’s _boatramp-verify TXT over public DNS) and operator (the in-binary Kubernetes operator; implies cluster).

The COSE/CWT + Cedar control-plane auth, the OCI→ext4 rootfs build, and the container / microVM / remote-docker compute backends are compiled into every build; they are not behind cargo features. The compute code that needs Linux is gated at the source level and compiles to no-ops elsewhere.

# A minimal build (filesystem blobs + embedded KV only).
cargo build --release -p boatramp --no-default-features --features fs,slatedb

Platform support

The publish / serve / handler / TLS / cluster core is cross-platform. The compute execution backends differ:

PlatformCompute backends
Linux x86_64, aarch64microVM (needs /dev/kvm), native container, remote-docker
macOS, Windowsremote-docker only

The microVM and native-container backends need /dev/kvm, namespaces, and the jailer, so they are Linux-only; on macOS and Windows that code compiles to no-ops and compute runs through the remote-docker backend against a Linux Docker host.

See also