7 releases (breaking)
new 0.6.0 | Oct 5, 2024 |
---|---|
0.5.0 | Oct 5, 2024 |
0.4.1 | Oct 10, 2021 |
0.3.0 | Oct 10, 2021 |
0.1.2 | May 10, 2021 |
#418 in Algorithms
689 downloads per month
Used in verneuil
26KB
327 lines
umash-rs: a rust API for UMASH
UMASH is a family of fast hash / fingerprinting functions with collision bounds. This crate builds on x86-64 (with CLMUL) and little-endian aarch64 (with VMULL). The UMASH family of functions is defined independently of hardware specific features, so computes the same values on both architecture.
See https://github.com/backtrace-labs/umash for more details.
lib.rs
:
UMASH is an almost-universal family of hash functions. Each
Params
struct defines a specific hash function; when the
parameters are generated pseudorandomly, the probability that two
different inputs of up to s
bytes collide (for an independently
generated set of parameters) is at most ceil(s / 4096) 2^-55
for
the 64-bit hash. The 128-bit fingerprint reduces that probability
to less than 2^-70
for inputs of 1 GB or less.
See the reference repo for more details and proofs.
Dependencies
~140–520KB
~10K SLoC