https://github.com/calebzulawski/autobahn-hash
A fast, safe, and portable implementation of HighwayHash for Rust
https://github.com/calebzulawski/autobahn-hash
hash hash-functions hashing highwayhash simd
Last synced: 6 months ago
JSON representation
A fast, safe, and portable implementation of HighwayHash for Rust
- Host: GitHub
- URL: https://github.com/calebzulawski/autobahn-hash
- Owner: calebzulawski
- License: apache-2.0
- Created: 2023-05-05T03:07:42.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-06-06T00:17:24.000Z (over 2 years ago)
- Last Synced: 2025-04-24T05:47:44.392Z (6 months ago)
- Topics: hash, hash-functions, hashing, highwayhash, simd
- Language: Rust
- Homepage:
- Size: 217 KB
- Stars: 17
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
AutobahnHash
============
[](https://crates.io/crates/autobahn-hash)
[](https://docs.rs/autobahn-hash)
[](https://crates.io/crates/autobahn-hash)A pure Rust implementation of [HighwayHash](https://github.com/google/highwayhash).
A few highlights:
* No `unsafe`
* Fuzzed against the reference implementation
* Minimal crate with few required dependencies
* Portable to any SIMD instruction set (and reasonably fast without SIMD)This crate requires the `portable_simd` nightly feature.
## Benchmarks
The following benchmarks were done on an Intel i7-9750H, to give an idea of the performance profile.
These two benchmarks can help predict best- and worst-case performance.### Slices
The HighwayHash algorithm performs best on long slices of data:
### Non-slice data
Worst-case performance can be predicted with non-slice data: `struct Data(u8, u16, u32, u64);`
## License
AutobahnHash is distributed under the terms of both the MIT license and the Apache License (Version 2.0).See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.