ptr_hash 1.0.0

A high-throughput minimal perfect hash function
Documentation
[package]
name = "ptr_hash"
version = "1.0.0"
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"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[profile.release]
# Things are _slightly_ faster without debug symbols, but they're nice for debugging.
# debug = true
# Needed for good inlining across crates, in particular murmur2.
lto = "thin"
incremental = true

[dependencies]
anyhow = "1.0.75"
bitvec = "1.0.1"
clap = { version = "4.4.6", features = ["derive"] }
colored = "3.0.0"
common_traits = "0.11.2"
epserde = { version = "0.8.0", optional = true }
epserde-derive = {version = "0.8.0", optional = true }
itertools = "0.14.0"
lazy_static = "1.4.0"
rand = "0.9.0"
rand_chacha = "0.9.0"
rayon = "1.8.0"
rdst = "0.20.11"
rustc-hash = "2.1.1"
sucds = "0.8.0"
tempfile = "3.8.1"
fastrand = "2.0.1"
serde = { version = "1.0.215", features = ["derive"] }
mem_dbg = "0.3.0"

cacheline-ef = "1.0.0"

# Default included hash functions
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.5.0", optional=true}

[features]
epserde = ["dep:epserde", "dep:epserde-derive", "cacheline-ef/epserde"]
# Enable iter_array_chunks unstable feature for iter_batch_exact, which is only for benchmarking.
unstable = []
# Allow additional hash functions, on top of just FxHash and XxHash.
hashers = ["dep:cityhash-102-rs", "dep:fastmurmur3", "dep:hashers", "dep:highway", "dep:metrohash", "dep:murmur2", "dep:murmur3", "dep:wyhash"]
default = ["epserde"]

[dev-dependencies]
serde_json = "1.0.133"

[[example]]
name = "epserde"
required-features = ["epserde"]