All Projects → eldruin → Wyhash Rs

eldruin / Wyhash Rs

Licence: other
wyhash fast portable non-cryptographic hashing algorithm and random number generator in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Wyhash Rs

prvhash
PRVHASH - Pseudo-Random-Value Hash. Hash functions, PRNG with unlimited period, randomness extractor. (Codename Gradilac/Градилак)
Stars: ✭ 194 (+340.91%)
Mutual labels:  hashing, random, hash
Minperf
A Minimal Perfect Hash Function Library
Stars: ✭ 107 (+143.18%)
Mutual labels:  algorithm, hash, hashing
pwm-pca9685-rs
Platform-agnostic Rust driver for the PCA9685 I2C 16-channel, 12-bit PWM/Servo/LED controller
Stars: ✭ 19 (-56.82%)
Mutual labels:  embedded, no-std
gdbstub
An ergonomic and easy-to-integrate implementation of the GDB Remote Serial Protocol in Rust, with full no_std support.
Stars: ✭ 158 (+259.09%)
Mutual labels:  embedded, no-std
Ahash
aHash is a non-cryptographic hashing algorithm that uses the AES hardware instruction
Stars: ✭ 251 (+470.45%)
Mutual labels:  hash, hashing
async-stm32f1xx
Abstractions for asynchronous programming on the STM32F1xx family of microcontrollers.
Stars: ✭ 24 (-45.45%)
Mutual labels:  embedded, no-std
ArduinoSpritzCipher
Spritz encryption system portable C library, CSPRNG, cryptographic hash and MAC functions, symmetric-key data encryption, and general-purpose functions. It's also an Arduino library.
Stars: ✭ 67 (+52.27%)
Mutual labels:  embedded, hash
littlefs2
Idiomatic Rust API for littlefs
Stars: ✭ 19 (-56.82%)
Mutual labels:  embedded, no-std
bromberg sl2
Cayley hashing as in "Navigating in the Cayley Graph of SL₂(𝔽ₚ)"
Stars: ✭ 32 (-27.27%)
Mutual labels:  hashing, hash
Bcrypt.net
BCrypt.Net - Bringing updates to the original bcrypt package
Stars: ✭ 422 (+859.09%)
Mutual labels:  algorithm, hash
Cuckoofilter
Substitute for bloom filter.
Stars: ✭ 270 (+513.64%)
Mutual labels:  algorithm, hashing
Name That Hash
🔗 Don't know what type of hash it is? Name That Hash will name that hash type! 🤖 Identify MD5, SHA256 and 3000+ other hashes ☄ Comes with a neat web app 🔥
Stars: ✭ 540 (+1127.27%)
Mutual labels:  hash, hashing
komihash
Very fast, high-quality hash function (non-cryptographic, C) + PRNG
Stars: ✭ 68 (+54.55%)
Mutual labels:  hashing, hash
pthash
Fast and compact minimal perfect hash functions in C++.
Stars: ✭ 62 (+40.91%)
Mutual labels:  hashing, hash
agent-python
Official python agent for using the distributed hashcracker Hashtopolis
Stars: ✭ 39 (-11.36%)
Mutual labels:  hashing, hash
laravel-hashid
HashId Implementation on Laravel Eloquent ORM
Stars: ✭ 23 (-47.73%)
Mutual labels:  hashing, hash
drone-cortexm
ARM® Cortex®-M platform crate for Drone, an Embedded Operating System.
Stars: ✭ 31 (-29.55%)
Mutual labels:  embedded, no-std
Rhai
Rhai - An embedded scripting language for Rust.
Stars: ✭ 958 (+2077.27%)
Mutual labels:  no-std, embedded
atat
no_std crate for parsing AT commands
Stars: ✭ 50 (+13.64%)
Mutual labels:  embedded, no-std
agent
hashtopolis.org
Stars: ✭ 19 (-56.82%)
Mutual labels:  hashing, hash

wyhash fast portable non-cryptographic hashing algorithm

crates.io Docs Build Status Coverage Status

Rust implementation of the wyhash algorithm by Wang Yi.

The hashing algorithm passes SMHasher and the random number generator passes BigCrush and practrand. As of now it is the fastest algorithm in the SMHasher benchmark (faster than t1ha and XXH3). See here.

Furthermore, this algorithm is solid, simple, portable (does not need hardware support, can be used in no_std environments) and has no dependencies (except the traits from rand_core).

The generated hashes are equal (see tests) as of the version stated here although the speed varies (PRs are welcome).

Usage

use wyhash::WyHash;
use std::hash::Hasher;

fn main() {
  let mut hasher = WyHash::with_seed(3);
  hasher.write(&[0, 1, 2]);
  assert_eq!(0xcc24_2106_e707_6a48, hasher.finish());
}

See further examples of the hasher and RNG in the documentation.

Support

For questions, issues, feature requests, and other changes, please file an issue in the github project.

Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.36.0 and up. It might compile with older versions but that may change in any new patch release.

License

Licensed under either of

at your option.

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].