[package]
name = "exaloglog"
version = "0.3.0"
edition = "2024"
rust-version = "1.85"
authors = ["masumi-ryugo <abyo.software@gmail.com>"]
license = "Apache-2.0 OR MIT"
description = "ExaLogLog: space-efficient approximate distinct counting (Ertl 2024). 43% smaller than HyperLogLog with the same estimation error."
repository = "https://github.com/abyo-software/exaloglog-rs"
homepage = "https://github.com/abyo-software/exaloglog-rs"
documentation = "https://docs.rs/exaloglog"
readme = "README.md"
keywords = ["hyperloglog", "cardinality", "sketch", "distinct", "counting"]
categories = ["data-structures", "algorithms"]
exclude = [
    "exaloglog-paper.pdf",
    "notes/",
    ".github/",
]

[dependencies]
serde = { version = "1", optional = true }

[features]
default = []
# Enables `Serialize` / `Deserialize` impls on `ExaLogLog` and
# `ExaLogLogFast`, going through the byte format from `to_bytes` /
# `from_bytes`. Lets you ship sketches over JSON, MessagePack, bincode,
# or any other serde data format.
serde = ["dep:serde"]

[dev-dependencies]
serde_json = "1"
bincode = "1"
proptest = "1"
rand = "0.8"
rand_xoshiro = "0.6"
criterion = { version = "0.5", default-features = false, features = ["plotters", "cargo_bench_support"] }

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