#hash #fingerprint #api-bindings

umash

Idiomatic API for the umash hash/fingerprint function

5 releases (3 breaking)

0.4.1 Oct 10, 2021
0.4.0 Oct 10, 2021
0.3.0 Oct 10, 2021
0.2.0 Aug 15, 2021
0.1.2 May 10, 2021

#1340 in Algorithms

Download history 295/week @ 2024-01-18 167/week @ 2024-01-25 266/week @ 2024-02-01 158/week @ 2024-02-08 157/week @ 2024-02-15 249/week @ 2024-02-22 143/week @ 2024-02-29 239/week @ 2024-03-07 382/week @ 2024-03-14 282/week @ 2024-03-21 135/week @ 2024-03-28 161/week @ 2024-04-04 114/week @ 2024-04-11 163/week @ 2024-04-18 117/week @ 2024-04-25 224/week @ 2024-05-02

669 downloads per month
Used in verneuil

MIT license

21KB
327 lines

umash-rs: a rust API for UMASH

Build Status crates.io

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

~105–435KB