rustc-hash
A speedy, non-cryptographic hashing algorithm used by rustc
and Firefox.
The hash map in std
uses SipHash by default, which provides resistance against DOS attacks.
These attacks aren't as much of a concern in the compiler so we prefer to use the quicker, non-cryptographic Fx algorithm.
The Fx algorithm is a unique one used by Firefox. It is fast because it can hash eight bytes at a time.
Within rustc
, it consistently outperforms every other tested algorithm (such as FNV).
The collision rate is similar or slightly worse than other low-quality hash functions.
Usage
This crate provides FxHashMap
and FxHashSet
as collections.
They are simply type aliases for their std::collection
counterparts using the Fx hasher.
use FxHashMap;
let mut map: = default;
map.insert;
no_std
The std
feature is on by default to enable collections.
It can be turned off in Cargo.toml
like so:
= { = "1.2", = false }