[package]
edition = "2021"
rust-version = "1.74"
name = "bitrep"
version = "0.4.1"
authors = ["Kyle Clouthier <kyle@simgen.dev>"]
build = false
exclude = [
"/.github",
"/fuzz",
"/demo",
"/.claude",
"/probes",
"/paper",
"RESEARCH.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Order-invariant, bit-identical floating-point reductions. Any order. Any hardware. Same bits."
documentation = "https://docs.rs/bitrep"
readme = "README.md"
keywords = [
"deterministic",
"reproducible",
"summation",
"crdt",
"distributed",
]
categories = [
"mathematics",
"algorithms",
"no-std",
"science",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/KyleClouthier/bitrep"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = ["std"]
quantile = ["std"]
receipts = [
"std",
"dep:sha2",
]
serde = ["dep:serde"]
stats = [
"std",
"dep:num-bigint",
"dep:num-traits",
]
std = []
[lib]
name = "bitrep"
path = "src/lib.rs"
[[example]]
name = "convergent_stats"
path = "examples/convergent_stats.rs"
required-features = ["stats"]
[[example]]
name = "deterministic_training"
path = "examples/deterministic_training.rs"
[[example]]
name = "float_gcounter"
path = "examples/float_gcounter.rs"
[[example]]
name = "gen_relsketch_vectors"
path = "examples/gen_relsketch_vectors.rs"
required-features = [
"quantile",
"receipts",
]
[[example]]
name = "gen_vectors"
path = "examples/gen_vectors.rs"
[[example]]
name = "merkle_sum_tree"
path = "examples/merkle_sum_tree.rs"
[[example]]
name = "otel_bridge"
path = "examples/otel_bridge.rs"
required-features = ["quantile"]
[[example]]
name = "parallel_sum"
path = "examples/parallel_sum.rs"
[[example]]
name = "quantile_receipt"
path = "examples/quantile_receipt.rs"
required-features = [
"quantile",
"receipts",
]
[[test]]
name = "golden"
path = "tests/golden.rs"
[[test]]
name = "nist_strd"
path = "tests/nist_strd.rs"
[[test]]
name = "properties"
path = "tests/properties.rs"
[[test]]
name = "quantile_probe"
path = "tests/quantile_probe.rs"
[[test]]
name = "quantile_realdata"
path = "tests/quantile_realdata.rs"
[[test]]
name = "quantile_redteam"
path = "tests/quantile_redteam.rs"
[[test]]
name = "stats"
path = "tests/stats.rs"
[[test]]
name = "toolkit"
path = "tests/toolkit.rs"
[[bench]]
name = "reductions"
path = "benches/reductions.rs"
harness = false
[dependencies.num-bigint]
version = "0.4"
optional = true
[dependencies.num-traits]
version = "0.2"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
default-features = false
[dependencies.sha2]
version = "0.10"
optional = true
[dev-dependencies.criterion]
version = "0.5"
default-features = false
[dev-dependencies.num-bigint]
version = "0.4"
[dev-dependencies.num-traits]
version = "0.2"
[dev-dependencies.proptest]
version = "1"
features = [
"std",
"bit-set",
]
default-features = false
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.sha2]
version = "0.10.9"
[dev-dependencies.xsum]
version = "0.1"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(kani)",
"cfg(kani_slow)",
]
[profile.bench]
lto = true
codegen-units = 1