#465 is in the train (merged first), so #484 meets the packaging train here. Conflicts, both sides kept: wai-pack's Cargo.toml (#484's platform_encode feature and its account, #465's optional wai-pack-gpu), its lib.rs module account (fabric, files and rendition), wai-pack.yml's test-count floors (#484's encode_rung with #465's counts), packaging §7.5 (#465's hardware device and driver, then #484's encoded rendition); CHANGELOG, #484's entry on top. The registry export is up to date after the merge. Co-Authored-By: Claude Opus 5.5 <[email protected]>
65 lines
3.1 KiB
TOML
65 lines
3.1 KiB
TOML
[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); and the platform encoders, the Annex B reader and the
|
|
# encode record (platform_encode), for an encoded rendition over a package's pieces
|
|
# (src/rendition.rs), each encoder loaded at run time. 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", "platform_encode"] }
|
|
# Stages on a GPU (feature `gpu`, packaging §11.6): the motion search, SSE and BLAKE3's
|
|
# chunk function as WGSL kernels, in a crate of its own with its own lockfile, as
|
|
# wai-ops-gpu is. Off by default: a build without it places every stage on the CPU.
|
|
wai-pack-gpu = { path = "../wai-pack-gpu", optional = true }
|
|
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.
|
|
|
|
[features]
|
|
default = []
|
|
# A GPU backend for the stages §11.6 lets a GPU run (wai-pack-gpu, through wgpu; shown exact on Metal).
|
|
gpu = ["dep:wai-pack-gpu"]
|
|
# The fabric meter on macOS (src/fabric_meter.rs): the kernel's account of the process's
|
|
# CPU energy, and the GPU rail's energy attributed by GPU time, without privileges.
|
|
fabric-meter = []
|
|
|
|
# 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"
|