[package]
name = "commonware-coding"
edition.workspace = true
publish = true
version.workspace = true
license.workspace = true
description = "Encode data to enable recovery from a subset of fragments."
readme = "README.md"
homepage.workspace = true
repository = "https://github.com/commonwarexyz/monorepo/tree/main/coding"
documentation = "https://docs.rs/commonware-coding"

[lints]
workspace = true

[dependencies]
arbitrary = { workspace = true, optional = true, features = ["derive"] }
bytes.workspace = true
commonware-codec = { workspace = true, features = ["std"] }
commonware-cryptography = { workspace = true, features = ["std"] }
commonware-math.workspace = true
commonware-storage = { workspace = true, features = ["std"] }
commonware-utils = { workspace = true, features = ["std"] }
futures.workspace = true
num-rational.workspace = true
rand.workspace = true
rand_core.workspace = true
rayon.workspace = true
reed-solomon-simd.workspace = true
thiserror.workspace = true

[lib]
bench = false

[dev-dependencies]
commonware-conformance.workspace = true
criterion.workspace = true
proptest.workspace = true
rand.workspace = true
rand_chacha.workspace = true

[features]
arbitrary = [
	"commonware-codec/arbitrary",
	"commonware-cryptography/arbitrary",
	"commonware-math/arbitrary",
	"commonware-storage/arbitrary",
	"commonware-utils/arbitrary",
	"dep:arbitrary",
]

[[bench]]
name = "coding_scheme_times"
harness = false
path = "src/benches/bench.rs"

[[bench]]
name = "coding_scheme_sizes"
harness = false
path = "src/benches/bench_size.rs"
