malwaredb-murmurhash3

Crates.iomalwaredb-murmurhash3
lib.rsmalwaredb-murmurhash3
version0.1.1
sourcesrc
created_at2023-08-22 02:42:01.066981
updated_at2024-05-06 04:10:12.558703
descriptionMurmurHash3 implementation
homepage
repositoryhttps://github.com/malwaredb/murmurhash3-rs
max_upload_size
id950666
size18,021
Richard Zak (rjzak)

documentation

README

TestLintCrates.io Version

MurmurHash3.rs

A rust implementation of the MurmurHash3 algorithm. Both 32 bit and 128 bit versions are included. The 128 bit version is implemented with 64 bit datatypes, making it most suitable for x86_64 or other 64 bit architectures.

This is a minor change from the upstream version. Modifications here remove dependencies on crates which prevented compilation on non-x86 hardware, and updated to Rust edition 2021.

Usage

In your Cargo.toml:

[dependencies]
malwaredb-murmurhash3 = "0.1"

Then you can start to use either murmurhash3_x86_32 or murmurhash3_x64_128:

use malwaredb_murmurhash3::murmurhash3_x64_128;

fn hash_value() {
    let data = "test data";
    let seed = 48221234;

    let hash = murmurhash3_x64_128(data.as_bytes(), seed);
}

Unfortunately, there is a bug in the HashState library implementation which prevents implementation of new Hasher implementations for use in for example HashMap. Additionally, only the 32 bit hasher can be used there since HashMap uses a 64 bit hash internally.

Tests

Run cargo test

Commit count: 50

cargo fmt