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