[package] name = "wai-pack" version = "0.1.0" edition = "2024" rust-version = "1.97" license = "Apache-2.0" description = "The reference packager of WAI's packaging extension: a declared policy and its digest, scene-cut segmentation with a bounded lookahead, staged packages of refinement layers and stills, live windows, simulated delivery, and the conformance corpus that pins them." 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] [lib] name = "wai_pack" [[bin]] name = "wai-pack" path = "src/bin/wai_pack.rs" [dependencies] # The standard's crate: canonical JSON and the capability registry (ungated); the # integer video encoder and decoder (video_int); the stage index and the package receipt # (video_package); HTTP delivery's codecs union and floor (http); staged measurement's # counted bytes and output digest (stage_measure); the measurement claim and its figure # view (receipt_claims); the model meter (energy_meter); and a still's writer and reader # (png_still, src/png.rs re-exports them). No codec library is linked. wai = { path = "../wai-rs", default-features = false, features = ["video_int", "video_package", "http", "stage_measure", "receipt_claims", "energy_meter", "png_still"] } ed25519-dalek = "2" # TOML 1.0 (the 0.8 line; later lines read TOML 1.1, which a policy must not use). toml = { version = "0.8", default-features = false, features = ["parse"] } serde_json = "1" blake3 = "1" sha2 = "0.10" # Inflate, for the verifier's reader of a still (wai's png_still, which src/png.rs # re-exports): an implementation apart from the packer's own deflate, so a still is # decoded by code that did not write it. # Release builds check integer overflow as debug builds do, so the release tests in CI # catch a wrapped product (a field read as u16 and doubled) rather than run past it. [dev-dependencies] # An inflater independent of the reader's own, to read the writer's stills back in a test. miniz_oxide = "0.8" [profile.release] overflow-checks = true # R3 of the design: no float decides anything. The library and the CLI deny float # arithmetic outright. [lints.clippy] float_arithmetic = "deny"