[package]
name = "acdp"
version = "0.2.0"
edition = "2021"
description = "Rust client library for the Agent Context Distribution Protocol (ACDP v0.1.0)"
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/agentcontextdistributionprotocol/acdp-rs"
homepage = "https://github.com/agentcontextdistributionprotocol/acdp-rs"
documentation = "https://docs.rs/acdp"
keywords = ["acdp", "agent", "context", "did", "verifiable"]
categories = ["web-programming", "cryptography", "data-structures"]
rust-version = "1.86"
exclude = [
"/.github",
"/target",
"/examples",
"/tests",
"/plans",
"/.gitignore",
"/deny.toml",
"/rustfmt.toml",
"/CONTRIBUTING.md",
"/SECURITY.md",
]
[features]
default = ["client"]
client = ["dep:reqwest", "dep:lru", "dep:tokio"]
server = []
tracing = ["dep:tracing"]
cli = ["client", "tokio/macros", "tokio/rt-multi-thread"]
[[bin]]
name = "acdp"
path = "src/bin/acdp.rs"
required-features = ["cli"]
[[test]]
name = "tls_conformance"
path = "tests/tls_conformance.rs"
required-features = ["client", "server"]
[[example]]
name = "end_to_end"
path = "examples/end_to_end.rs"
required-features = ["client"]
[[test]]
name = "cli"
path = "tests/cli.rs"
required-features = ["cli"]
[[test]]
name = "receipts"
path = "tests/receipts.rs"
required-features = ["client", "server"]
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["preserve_order", "float_roundtrip"] }
sha2 = "0.10"
ed25519-dalek = { version = "2", features = ["rand_core"] }
p256 = { version = "0.13", default-features = false, features = ["ecdsa", "std"] }
base64 = "0.22"
hex = "0.4"
zeroize = { version = "1", features = ["derive"] }
rand_core = { version = "0.6", features = ["std"] }
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4"] }
url = "2"
urlencoding = "2"
bs58 = "0.5"
thiserror = "1"
reqwest = { version = "0.12", features = ["json", "rustls-tls"], optional = true, default-features = false }
lru = { version = "0.16", optional = true }
tokio = { version = "1", features = ["time"], optional = true, default-features = false }
tracing = { version = "0.1", optional = true, default-features = false, features = ["attributes"] }
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
anyhow = "1"
wiremock = "0.6"
proptest = "1"
rcgen = { version = "0.13", default-features = false, features = ["pem", "ring"] }
axum = { version = "0.7", default-features = false, features = ["json"] }
axum-server = { version = "0.7", default-features = false, features = ["tls-rustls"] }
rustls = { version = "0.23", default-features = false, features = ["aws-lc-rs"] }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
targets = ["x86_64-unknown-linux-gnu"]
[lints.rust]
unsafe_code = "forbid"
[lints.clippy]
all = { level = "warn", priority = -1 }