• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[package]
2name = "ahash"
3version = "0.8.3"
4authors = ["Tom Kaitchuck <Tom.Kaitchuck@gmail.com>"]
5license = "MIT OR Apache-2.0"
6description = "A non-cryptographic hash function using AES-NI for high performance"
7documentation = "https://docs.rs/ahash"
8repository = "https://github.com/tkaitchuck/ahash"
9keywords = ["hash", "hasher", "hashmap", "aes", "no-std"]
10categories = ["algorithms", "data-structures", "no-std"]
11edition = "2018"
12readme = "README.md"
13build = "./build.rs"
14exclude = ["/smhasher", "/benchmark_tools"]
15
16[lib]
17name = "ahash"
18path = "src/lib.rs"
19test = true
20doctest = true
21bench = true
22doc = true
23
24[features]
25default = ["std", "runtime-rng"]
26
27# Enabling this will enable `AHashMap` and `AHashSet`.
28std = []
29
30# Runtime random key generation using getrandom.
31runtime-rng = ["getrandom"]
32
33# This is an alternative to runtime key generation which does compile time key generation if runtime-rng is not available.
34# (If runtime-rng is enabled this does nothing.)
35# If this is on (and runtime-rng is off) it implies the produced binary will not be identical.
36# If this is disabled and runtime-rng is unavailable constant keys are used.
37compile-time-rng = ["const-random"]
38
39# Do not use any random number generator (either at compile time or runtime)
40# If either runtime-rng or compile-time-rng are enabled this does nothing.
41no-rng = []
42
43# in case this is being used on an architecture lacking core::sync::atomic::AtomicUsize and friends
44atomic-polyfill = [ "dep:atomic-polyfill", "once_cell/atomic-polyfill"]
45
46[[bench]]
47name = "ahash"
48path = "tests/bench.rs"
49harness = false
50
51[[bench]]
52name = "map"
53path = "tests/map_tests.rs"
54harness = false
55
56[profile.test]
57opt-level = 2
58lto = 'fat'
59
60[profile.release]
61opt-level = 3
62debug = false
63lto = 'fat'
64debug-assertions = false
65codegen-units = 1
66
67[profile.bench]
68opt-level = 3
69debug = false
70lto = 'fat'
71debug-assertions = false
72codegen-units = 1
73
74[build-dependencies]
75version_check = "0.9.4"
76
77[dependencies]
78const-random = { version = "0.1.12", optional = true }
79serde = { version = "1.0.117", optional = true }
80cfg-if = "1.0"
81atomic-polyfill = { version="1.0.1", optional=true}
82getrandom = { version = "0.2.7", optional = true }
83
84[target.'cfg(not(all(target_arch = "arm", target_os = "none")))'.dependencies]
85once_cell = { version = "1.13.1", default-features = false, features = ["unstable", "alloc"] }
86
87[dev-dependencies]
88no-panic = "0.1.10"
89criterion = {version =  "0.3.2", features = ["html_reports"] }
90seahash = "4.0"
91fnv = "1.0.5"
92fxhash = "0.2.1"
93hex = "0.4.2"
94rand = "0.8.5"
95serde_json = "1.0.59"
96hashbrown = "0.12.3"
97
98[package.metadata.docs.rs]
99rustc-args = ["-C", "target-feature=+aes"]
100rustdoc-args = ["-C", "target-feature=+aes"]
101features = ["std"]
102