Skip to content

Blazingly fast hash for HashMaps in Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

engusmaze/fhash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FHash

FHash is a simple and lightweight hashing crate designed for flexibility, speed, and usability across various Rust environments. It provides a basic hashing algorithm, FHasher, along with a RandomState implementation intended for use in HashMap and HashSet structures. It's a direct competitor to AHash and is 1.3-2.0x faster.

Features

FHasher

  • Stupidly Simple: Implements a straightforward hash function, offering basic yet effective hashing capabilities.
  • Minimalistic Design: Designed to be lean and efficient, suitable for a wide range of hashing needs without unnecessary complexity.
  • Customizable: Provides flexibility by allowing custom seeding for FHasher instances.

RandomState

  • Enhanced Security: Incorporates randomness into the hashing process, mitigating certain types of hash collision attacks and bolstering security in data structures.
  • Easy Integration: Designed for seamless integration with HashMap and HashSet to enhance resilience against potential vulnerabilities in the hash function.

Usage

RandomState with HashMap/HashSet

use hashbrown::HashMap;
use fhash::RandomState;

let mut map: HashMap<i32, &str, RandomState> = HashMap::default();
map.insert(1, "apple");
map.insert(2, "banana");

assert_eq!(map.get(&1), Some(&"apple"));
assert_eq!(map.get(&2), Some(&"banana"));

FHasher

use fhash::FHasher;

let mut hasher = FHasher::default();
hasher.write(b"Hello, world!");
let hash_result = hasher.finish();

Compatibility

  • no_std Compatible: Can be used in no_std environments or scenarios with limited access to the standard library.

Contributing

Contributions to enhance FHash in terms of optimizations, features, or bug fixes are welcome! Please submit issues or pull requests.

About

Blazingly fast hash for HashMaps in Rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages