[package]
name = "ptr_hash"
version = "2.0.1"
edition = "2021"
license = "MIT"
authors = ["Ragnar Groot Koerkamp"]
repository = "https://github.com/RagnarGrootKoerkamp/ptrhash"
homepage = "https://curiouscoding.nl/posts/ptrhash"
description = "A high-throughput minimal perfect hash function"
readme = "readme.md"
keywords = ["hashing", "minimal", "perfect", "mphf"]
categories = ["data-structures", "science"]
include = ["src/**/*", "examples/*", "readme.md"]
[profile.release]
debug = true
lto = "thin"
incremental = true
[dependencies]
bitvec = "1.0.1"
clap = { version = "4.4.6", features = ["derive"], optional = true }
colored = "3.0.0"
epserde = { version = "0.13.0", optional = true }
epserde-derive = {version = "0.13.0", optional = true }
itertools = "0.15.0"
rand = "0.10.2"
rand_chacha = "0.10.0"
rayon = "1.8.0"
rdst = "0.20.11"
sucds = { version = "0.8.0", optional = true }
tempfile = "3.8.1"
fastrand = "2.0.1"
serde = { version = "1.0.215", features = ["derive"] }
mem_dbg = "0.4.2"
cacheline-ef = { version = "1.1.0", optional = true }
fxhash = "0.2.1"
xxhash-rust = {version = "0.8.7", features = ["xxh64", "xxh3"]}
cityhash-102-rs = {version="0.1.0", optional=true}
fastmurmur3 = {version="0.2.0", optional=true}
hashers = {version="1.0.1", optional=true}
highway = {version="1.1.0", optional=true}
metrohash = {version="1.0.6", optional=true}
murmur2 = {version="0.1.0", optional=true}
murmur3 = {version="0.5.2", optional=true}
wyhash = {version="0.6.0", optional=true}
log = "0.4.27"
gxhash = { version = "3.5.0", optional = true }
prefetch-index = "0.2.1"
[features]
default = ["elias-fano", "cacheline-ef", "gxhash"]
epserde = ["dep:epserde", "dep:epserde-derive", "cacheline-ef/epserde"]
unstable = []
cacheline-ef = ["dep:cacheline-ef"]
elias-fano = ["dep:sucds"]
gxhash = ["dep:gxhash"]
hashers = ["dep:cityhash-102-rs", "dep:fastmurmur3", "dep:hashers", "dep:highway", "dep:metrohash", "dep:murmur2", "dep:murmur3", "dep:wyhash"]
clap = ["dep:clap"]
[dev-dependencies]
env_logger = "0.11.7"
serde_json = "1.0.133"
[[example]]
name = "epserde"
required-features = ["epserde"]
[[example]]
name = "string_keys"
required-features = ["elias-fano", "gxhash"]
[[example]]
name = "evals"
required-features = ["elias-fano", "cacheline-ef", "gxhash"]
[[example]]
name = "query_bench"
required-features = ["elias-fano"]
[[example]]
name = "large_bench"
required-features = ["elias-fano"]