[package] name = "rhema-sandbox-server" description = "`rhema-sandboxd`: the rhema sandbox wire protocol served from a host, one root directory per session" version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true repository.workspace = true authors.workspace = true [dependencies] # The seam, the protocol, and `FsRoot` (feature `spawn`) rhema-sandbox = { version = "0.2.6", features = ["spawn"] } # The exec and seed routes run on the local backend, one `LocalSandbox` # per request rhema-sandbox-local = { version = "0.2.6" } # The daemon's HTTP surface: axum for the routes axum = { workspace = true } # The binary's args; the version pin mirrors the rest of the workspace's clap = { version = "4.5", features = ["derive"] } # File contents cross the put/get routes base64 base64 = "0.22" # The error replies and the parsed request bodies serde = { workspace = true } serde_json = { workspace = true } # Serving (rt-multi-thread, sockets) and the exec route's child tokio = { workspace = true, features = [ "rt-multi-thread", "net", "macros", "process", "io-util", "time", "fs", ] } [dev-dependencies] # The loopback test drives the daemon with a raw HTTP/1.1 client tokio = { workspace = true } # The loopback test drives the real client over the real wire rhema-sandbox-http = { version = "0.2.6" } # The daemon roots in throwaway directories tempfile = "3" # `probe_healthz` speaks raw HTTP to `/healthz` — outside the protocol # client — so the token middleware is tested on the wire itself; the # pin and features mirror rhema-sandbox-http's native transport reqwest = { version = "0.12", default-features = false, features = [ "json", "rustls-tls", ] } [[bin]] name = "rhema-sandboxd" path = "src/bin/rhema-sandboxd.rs" [lints] workspace = true