[package] name = "wai-fleet" version = "0.1.0" edition = "2024" license = "Apache-2.0" description = "A WAI fleet as a service: an organisation's nodes enrolled by their signing keys, the session summaries and per-hop records they sign verified and kept append-only, and the fleet report the organisation signs for a period, exported as a bundle that verifies offline." repository = "https://git.transaction.science/Transaction-Science/open-standards" publish = false # Its own workspace and Cargo.lock, like the other crates beside wai-rs. [workspace] # The relay's wtransport, vendored with its WebTransport session close, as the relay's own # workspace patches it (joule-code/joule-code-rs/vendor/wtransport/VENDORED.md): the relay is a # dev-dependency here, for its own types in the tests. [patch.crates-io] wtransport = { path = "../../joule-code/joule-code-rs/vendor/wtransport" } # quinn 0.11.12 and quinn-proto 0.11.19 with RESET_STREAM_AT and the reset_stream_at transport # parameter, which WebTransport over HTTP/3 relies on (vendor/quinn-proto/VENDORED.md). quinn = { path = "../../joule-code/joule-code-rs/vendor/quinn" } quinn-proto = { path = "../../joule-code/joule-code-rs/vendor/quinn-proto" } [dependencies] axum = "0.8" tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "sync", "signal", "io-util", "time"] } serde_json = { version = "1", features = ["preserve_order"] } ed25519-dalek = { version = "3", features = ["alloc"] } getrandom = "0.4" # `wai-fleet collect` reads a node's published summary file over https: rustls with ring, as the # relay's own upstream does, and the platform's roots. rustls = { version = "0.23", default-features = false, features = ["ring", "std"] } tokio-rustls = { version = "0.26", default-features = false, features = ["ring"] } rustls-native-certs = "0.8" wai = { path = "../wai-rs", default-features = false, features = ["fleet"] } # GET /metrics, in the text exposition format. wai-metrics = { path = "../wai-metrics" } [profile.release] lto = "thin" [dev-dependencies] sha2 = "0.11" # The reference relay, for its own types: the corpus's summaries read and re-serialised by them, # and summaries and per-hop records signed by its own code, collected from a file it would write. joule-moq-relay = { path = "../../joule-code/joule-code-rs/crates/joule-moq-relay" } hex = "0.4"