[package]
name = "laser-wire"
description = "LaserData wire contract: managed command codes, CBOR envelopes including the Agent Data Exchange Protocol (AGDX) agent envelope, the query IR, projections, schemas, KV, forks, and the HTTP surface. Runtime-free, wasm-compatible."
categories = ["encoding", "api-bindings", "wasm"]
keywords = ["iggy", "laserdata", "wire", "cbor", "wasm"]
readme = "README.md"
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true
[package.metadata.cargo-machete]
ignored = ["time"]
[package.metadata.docs.rs]
all-features = true
[features]
default = ["cbor"]
bson = ["codecs", "dep:bson", "dep:time"]
cbor = ["dep:ciborium"]
codecs = ["cbor", "dep:rmp-serde"]
fixtures = ["codecs"]
builders = ["dep:bon"]
http-client = ["cbor", "dep:serde_urlencoded"]
[dependencies]
bon = { workspace = true, optional = true }
ciborium = { workspace = true, optional = true }
rmp-serde = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_urlencoded = { workspace = true, optional = true }
strum = { workspace = true }
thiserror = { workspace = true }
[target.'cfg(not(target_family = "wasm"))'.dependencies]
bson = { workspace = true, optional = true }
time = { workspace = true, optional = true }
[[test]]
name = "robustness"
path = "tests/robustness.rs"
required-features = ["fixtures"]
[[test]]
name = "wire_fixtures"
path = "tests/wire_fixtures.rs"
required-features = ["fixtures"]
[[test]]
name = "constants"
path = "tests/constants.rs"