blake2_simd icon indicating copy to clipboard operation
blake2_simd copied to clipboard

high-performance implementations of BLAKE2b/s/bp/sp in pure Rust with dynamic SIMD

Results 11 blake2_simd issues
Sort by recently updated
recently updated
newest added

https://github.com/cesarb/blake2-rfc I measure it to be about 2% faster than `portable.rs`. Not yet sure why, though it might be using some SIMD under the covers, or maybe getting optimized to...

It should be possible to make some functions constant, at least simple ones like an empty state. It will require to add extra constructors because runtime feature detection is obviously...

https://github.com/bheisler/criterion.rs compiles on rust stable, meaning you can `cargo check --benches` in your CI to catch accidentally broken benches. You also get charts and statistics for free.

There are [some needs](https://eips.ethereum.org/EIPS/eip-152) to use the [compression function](https://tools.ietf.org/html/rfc7693#section-3.2) from RFC 7693. Would you be willing to expose it in your awesome crate or extract it in a lower-level crate...

This could be just two lanes of the single-instance BLAKE2s permutation. It could allow better throughput of 8 KiB Bao inputs, before the 4-way SSE4.1 implementation kicks in at 16...

https://github.com/floodyberry/blake2b-opt I can't get it to compile, though, because of https://github.com/floodyberry/blake2b-opt/issues/4.

https://github.com/jackmott/simdeez The goal would be to keep avx2 performance the same, but to get an SSE4 fallback implementation for free. The alternative would be to port this implementation directly: https://github.com/BLAKE2/BLAKE2/blob/master/sse/blake2b-round.h#L139

I'm not sure what the long term plans are for stabilizing it, but `coresimd` supports feature detection.

The `LICENSE` file is in the top-level repo directory, but not in each of the crates published to `crates.io`. This means it's missing from the packaged crates. Symlink them into...

blake2s: * From blake2b: * From * From Both introduce an intermediate buffer in the implementation, but this is a small tradeoff that allows usage of some common hash sizes...