[package] name = "pthash" version = "0.4.0" edition = "2021" description = "Rust bindings for PTHash" rust-version = "1.77" license = "GPL-3.0-or-later" authors = [ "Software Heritage developers " ] readme = "README.md" homepage = "https://gitlab.softwareheritage.org/swh/devel/pthash-rs" repository = "https://gitlab.softwareheritage.org/swh/devel/pthash-rs" keywords = ["hashing", "mph", "mphf", "dictionary", "map"] categories = ["compression", "api-bindings", "data-structures"] [features] default = ["default_minimalities", "default_encoders", "default_hash_sizes"] check = ["dep:sux", "dep:thiserror"] rayon = ["dep:rayon"] # The following feature groups trigger instantiation of C++ template for their cartesian # product. By default, these are 2 PHF types × 2 minimalities × 2 hash sizes × 3 encoders # = 24 instances # Minimalities default_minimalities = ["minimal", "nonminimal"] minimal = [] nonminimal = [] # Hash sizes default_hash_sizes = ["hash64", "hash128"] hash64 = [] hash128 = ["hash64"] # implementation of MurmurHash2_128 depends on MurmurHash2_64 # Encoders default_encoders = ["dictionary_dictionary", "partitioned_compact", "elias_fano"] dictionary_dictionary = [] partitioned_compact = [] elias_fano = [] [dependencies] autocxx = "0.27.0" cxx = "1.0" log = "0.4.17" sux = { version = "0.3.1", optional = true } rand = "0.8.5" rayon = { version = "1.9.0", optional = true } thiserror = { version = "1.0.48", optional = true } [build-dependencies] thiserror = "1.0.48" autocxx-build = "0.27.0" autocxx-engine = "0.27.0" cxx-build = "1.0" [dev-dependencies] anyhow = "1.0.79" rand = "0.8.5" stderrlog = "0.5.4" tempfile = "3.7.1" [[example]] name = "example" required-features = ["check"]