[package]
name = "didwebvh-rs"
version = "0.4.0"
description = "Implementation of the did:webvh method in Rust"
repository = "https://github.com/decentralized-identity/didwebvh-rs"
edition = "2024"
authors = ["Glenn Gore <glenn@affinidi.com>"]
homepage = "https://didwebvh.info/"
categories = ["authentication", "cryptography", "web-programming"]
keywords = ["ssi", "did", "webvh", "verifiable"]
publish = true
license = "Apache-2.0"
readme = "README.md"
rust-version = "1.90.0"

[features]
default = ["network"]
ssi = ["dep:ssi", "network"]
network = ["dep:reqwest"]
rustls = ["network", "reqwest/rustls"]
native-tls = ["network", "reqwest/native-tls"]

[dependencies]
affinidi-data-integrity = { version = "0.5" }
affinidi-secrets-resolver = "0.5"

ahash = { version = "0.8", features = ["serde"] }
async-trait = "0.1"
base58 = "0.2"
chrono = { version = "0.4", features = ["serde"] }
multihash = "0.19"
reqwest = { version = "0.13", optional = true }
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
serde_json_canonicalizer = "0.3"
serde_with = "3.18"
sha2 = "0.11"
ssi = { version = "0.15", features = ["secp384r1"], optional = true }
thiserror = "2.0"
tokio = { version = "1.50" }
tracing = { version = "0.1" }
url = "2.5"
getrandom = { version = "0.4", features = ["wasm_js"] }

[dev-dependencies]
affinidi-tdk = "0.6"
anyhow = "1.0"
byte-unit = "5.2"
clap = { version = "4.6", features = ["derive"] }
console = "0.16"
dialoguer = "0.12"
format_num = "0.1.0"
rand = "0.10"
criterion = { version = "0.8", features = ["async_tokio"] }
proptest = "1"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
wiremock = "0.6"
tracing-subscriber = { version = "0.3", features = [
  "env-filter",
  "fmt",
  "json",
  "valuable",
] }

[[example]]
name = "resolve"
required-features = ["network"]

[[example]]
name = "wizard"
required-features = ["network"]

[[example]]
name = "generate_history"
required-features = ["network"]

[[example]]
name = "generate_large_did"
required-features = ["network"]

[[bench]]
name = "did_benchmarks"
harness = false

[[bench]]
name = "did_benchmarks_nightly"
