#hash

murmurhash64

Implementation of MurmurHash2 (64bit version)

5 unstable releases

0.3.1 Mar 3, 2016
0.3.0 Jan 27, 2016
0.2.0 May 9, 2015
0.1.1 Nov 22, 2014
0.1.0 Nov 20, 2014

#41 in #hash

Download history 57/week @ 2018-05-04 48/week @ 2018-05-11 54/week @ 2018-05-18 35/week @ 2018-05-25 61/week @ 2018-06-01 11/week @ 2018-06-08 109/week @ 2018-06-15 19/week @ 2018-06-22 113/week @ 2018-06-29 27/week @ 2018-07-06 79/week @ 2018-07-13 39/week @ 2018-07-20 47/week @ 2018-07-27

116 downloads per month
Used in 2 crates

BSD-3-Clause

9KB
153 lines

MurmurHash2 (64bit) implementation

Build Status crates.io

Based on the implementation for Redis (antirez/redis src/hyperloglog.c)

More info and different implementations available at: https://sites.google.com/site/murmurhash/

Documentation

Build

cargo build --release

Usage

use murmurhash64::murmur_hash64a;

fn main() {
    let key = "Pizza & Mandolino";
    let seed = 2915580697;

    let hash = murmur_hash64a(key.as_bytes(), seed);
}

As a Hasher

use std::collections::HashMap;
use murmurhash64::{MurmurHasher,RandomMurmurState};
use std::default::Default;

fn main() {
    let mut hashmap : HashMap<_, _, RandomMurmurState> = Default::default();
    hashmap.insert("abc", 123);
    hashmap.insert("def", 456);
    assert_eq!(Some(&123), hashmap.get("abc"));
    assert_eq!(Some(&456), hashmap.get("def"));
}

Tests

Run tests with:

cargo test

Contribute

If you find bugs or want to help otherwise, please open an issue.

License

BSD. See LICENSE.

Dependencies

~1MB
~13K SLoC