[package]
name = "onpair"
version = "0.0.3"
description = "Short-strings compression for fast random access"
authors = ["SpiralDB Developers <hello@spiraldb.com>"]
license = "Apache-2.0"
repository = "https://github.com/spiraldb/onpair"
readme = "README.md"
keywords = ["compression", "strings", "onpair", "random-access", "lightweight"]
categories = ["compression"]
rust-version = "1.91.0"
edition = "2024"
exclude = [".github/*"]

[lib]
name = "onpair"

[lints.rust]
warnings = "deny"
# TODO: re-tighten to "deny" once the slim public API has docs.
missing_docs = "allow"

[lints.clippy]
all = { level = "deny", priority = -1 }
if_then_some_else_none = { level = "deny" }
mem_forget = { level = "deny" }
or_fun_call = "deny"
panic_in_result_fn = { level = "deny" }
same_name_method = { level = "deny" }
tests_outside_test_module = { level = "deny" }
unwrap_in_result = { level = "deny" }
use_debug = { level = "deny" }

[dependencies]
hashbrown = "0.16.1"
rand = "0.9.0"

[dev-dependencies]
divan = { package = "codspeed-divan-compat", version = "4.0.4" }
rstest = "0.26.1"
arrow-array = "57.1"
arrow-schema = "57.1"
parquet = "57.1"
tpchgen = "2.0.2"
tpchgen-arrow = "2.0.2"

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

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