• Stars
    star
    345
  • Rank 122,750 (Top 3 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Rust implementation of the XXHash algorithm.

TwoX-Hash

A Rust implementation of the XXHash algorithm.

Build Status Current Version

Documentation

Examples

With a fixed seed

use std::hash::BuildHasherDefault;
use std::collections::HashMap;
use twox_hash::XxHash64;

let mut hash: HashMap<_, _, BuildHasherDefault<XxHash64>> = Default::default();
hash.insert(42, "the answer");
assert_eq!(hash.get(&42), Some(&"the answer"));

With a random seed

use std::collections::HashMap;
use twox_hash::RandomXxHashBuilder64;

let mut hash: HashMap<_, _, RandomXxHashBuilder64> = Default::default();
hash.insert(42, "the answer");
assert_eq!(hash.get(&42), Some(&"the answer"));

Benchmarks

64-bit

Bytes SipHasher (MB/s) XXHash (MB/s) Ratio
1 52 38 73%
4 210 148 70%
16 615 615 100%
32 914 1391 152%
128 1347 3657 271%
256 1414 5019 355%
512 1546 6168 399%
1024 1565 6206 397%
1048576 1592 7564 475%
Bytes FnvHasher (MB/s) XXHash (MB/s) Ratio
1 1000 38 4%
4 800 148 19%
16 761 615 81%
32 761 1391 183%
128 727 3657 503%
256 759 5019 661%
512 745 6168 828%
1024 741 6206 838%
1048576 745 7564 1015%

32-bit

Bytes SipHasher (MB/s) XXHash32 (MB/s) Ratio
1 52 55 106%
4 210 210 100%
16 615 1230 200%
32 914 1882 206%
128 1347 3282 244%
256 1414 3459 245%
512 1546 3792 245%
1024 1565 3938 252%
1048576 1592 4127 259%
Bytes FnvHasher (MB/s) XXHash32 (MB/s) Ratio
1 1000 55 6%
4 800 210 26%
16 761 1230 162%
32 761 1882 247%
128 727 3282 451%
256 759 3459 456%
512 745 3792 509%
1024 741 3938 531%
1048576 745 4127 554%

Contributing

  1. Fork it ( https://github.com/shepmaster/twox-hash/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Add a failing test.
  4. Add code to pass the test.
  5. Commit your changes (git commit -am 'Add some feature')
  6. Ensure tests pass.
  7. Push to the branch (git push origin my-new-feature)
  8. Create a new Pull Request

More Repositories

1

snafu

Easily assign underlying errors into domain-specific errors while adding context
Rust
1,378
star
2

rust-ffi-omnibus

A collection of examples of using code written in Rust from other languages
SCSS
472
star
3

sxd-document

An XML library in Rust
Rust
147
star
4

jetscii

A tiny library to efficiently search strings for sets of ASCII characters and byte slices for sets of bytes.
Rust
113
star
5

sxd-xpath

An XPath library in Rust
Rust
111
star
6

rust-arduino-blink-led-no-core-with-cargo

Blink the LED on the Arduino Uno with Rust and Cargo
Rust
72
star
7

rust-arduino-blink-led-no-core

Blink the LED on the Arduino Uno with Rust
Rust
46
star
8

nginx-template-image

Allow Docker environment variables in nginx configuration files
Shell
39
star
9

cupid

Get information about the x86 and x86_64 processor
Rust
34
star
10

ebene-rust

A Rust source code parser and explorer
TypeScript
22
star
11

peresil

A simplistic parsing library in Rust
Rust
20
star
12

mini-crater

Rust
19
star
13

rspec-search-and-destroy

Automatically finds test-ordering bugs in RSpec test suites
Ruby
18
star
14

rust-mre

A collection of techniques to reduce Rust code in order to get better help
17
star
15

temporal-coupling

Explores git repositories to find files that are commonly changed together
Ruby
12
star
16

advent-of-code-2021

Rust
7
star
17

human-resource-machine

A little toy to parse Human Resource Machine save files and then replay them.
Rust
7
star
18

fuzzy-pickles

A Rust parser to power Strata Rust
Rust
7
star
19

ebene

Rust
5
star
20

providence

Rust
5
star
21

clojure-ruby

An extremely bare-bones Ruby interpreter
Clojure
5
star
22

advent-of-code-2022

Rust
5
star
23

stack-overflow-relay

Rust
4
star
24

java-dependency-graph

Ruby
4
star
25

simavr

An AVR simulator / emulator
Rust
4
star
26

sxd

Rust
4
star
27

sxd-string-slab

A string interning pool tailored for XML documents
Rust
3
star
28

snafu-lints

Optional lints for SNAFU
Rust
3
star
29

jasmine-junitreporter-gem

A gem wrapping jasmine-junitreporter for the Rails Asset Pipeline
Ruby
3
star
30

advent-of-code-2019

Rust
3
star
31

fantastic-rotary

Rust
2
star
32

ruby-brainfuck

An extremely bare-bones Brainfuck interpreter
Ruby
2
star
33

advent-of-code-2023

Rust
1
star
34

rust-charge

Rust
1
star
35

advent-of-code-2020

Rust
1
star
36

snafu-upgrade-assistant

Rust
1
star
37

advent-of-code-2016

My Rust solutions for http://adventofcode.com/2016
Rust
1
star
38

shepmaster.github.com

My blog
HTML
1
star
39

jasmine-junitreporter

A Jasmine 2 reporter that outputs JUnit 4.x compatible results when used with PhantomJS.
JavaScript
1
star
40

actions-scratch

Rust
1
star
41

stack-overflow-comments

My boilerplate comments
1
star
42

diesel-join-to-subquery

An example of working around joining to a subquery with Diesel
Rust
1
star
43

typescript-css-modules-theme

An example of using CSS modules with themes in TypeScript and React 16.3
TypeScript
1
star
44

sxd-cpp

C++ XML Library
C++
1
star
45

crispy-sniffle

Rust
1
star