[package]
name = "hdk"
version = "0.4.0-dev.15"
description = "The Holochain HDK"
license = "CAL-1.0"
homepage = "https://github.com/holochain/holochain/tree/develop/crates/hdk"
documentation = "https://docs.rs/hdk"
authors = ["Holochain Core Dev Team <devcore@holochain.org>"]
keywords = ["holochain", "holo", "hdk"]
categories = ["cryptography"]
edition = "2021"

# reminder - do not use workspace deps
[dependencies]
hdi = { version = "=0.5.0-dev.13", path = "../hdi", features = ["trace"] }
hdk_derive = { version = "^0.4.0-dev.12", path = "../hdk_derive" }
holo_hash = { version = "^0.4.0-dev.11", path = "../holo_hash" }
holochain_wasmer_guest = { version = "=0.0.95" }
# it's important that we depend on holochain_zome_types with no default
# features, both here AND in hdk_derive, to reduce code bloat
holochain_zome_types = { version = "^0.4.0-dev.15", path = "../holochain_zome_types", default-features = false }
paste = "1.0"
serde = "1.0"
serde_bytes = "0.11"
thiserror = "1.0.22"
tracing = "0.1"
tracing-core = "0.1"
mockall = { version = "0.11.3", optional = true }

# When building for the WASM target, we need to configure getrandom
# to use the host system for the source of crypto-secure randomness.
# NOTE: This needs to be kept in sync with what is actually being pulled in via holo_hash and holochain_wasmer_guest
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
getrandom = { version = "0.2", features = ["custom"] }

[dev-dependencies]
fixt = { path = "../fixt" }
trybuild = "1.0"

[lints]
workspace = true

[features]
default = []
mock = ["hdk_derive/mock", "mockall"]
encoding = ["holo_hash/encoding"]
fixturators = ["holochain_zome_types/fixturators", "holo_hash/fixturators"]
fuzzing = ["holochain_zome_types/fuzzing", "holo_hash/fuzzing"]
test_utils = ["fixturators", "hdi/test_utils", "holo_hash/test_utils"]
properties = ["holochain_zome_types/properties"]
