All Projects → TommasoBelluzzo → FastHashes

TommasoBelluzzo / FastHashes

Licence: MIT License
A .NET implementation of several non-cryptographic hashes.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to FastHashes

prvhash
PRVHASH - Pseudo-Random-Value Hash. Hash functions, PRNG with unlimited period, randomness extractor. (Codename Gradilac/Градилак)
Stars: ✭ 194 (+708.33%)
Mutual labels:  hash-functions, hashing-algorithms
SpecTools
Write less test code with this set of spec tools. Swift, iOS, testing framework independent (but works well with Quick/Nimble or directly).
Stars: ✭ 38 (+58.33%)
Mutual labels:  testing-framework
deckard
DNS test harness
Stars: ✭ 28 (+16.67%)
Mutual labels:  testing-framework
iutest
c++ testing framework
Stars: ✭ 58 (+141.67%)
Mutual labels:  testing-framework
RestSharpFramework
Framework for testing RESTful Services with RestSharp and C# HTTP Client
Stars: ✭ 18 (-25%)
Mutual labels:  testing-framework
simhash-js
Simhash implementation in Javascript
Stars: ✭ 35 (+45.83%)
Mutual labels:  hash-functions
karate-runner
VSCode Extension for Karate
Stars: ✭ 23 (-4.17%)
Mutual labels:  testing-framework
Exam
Extension for Concordion BDD Framework
Stars: ✭ 15 (-37.5%)
Mutual labels:  testing-framework
cpptest
🛠️ Powerful, yet simple, C++ unit testing framework; new home after https://sourceforge.net/projects/cpptest/
Stars: ✭ 51 (+112.5%)
Mutual labels:  testing-framework
crotest
A tiny and simple test framework for crystal
Stars: ✭ 24 (+0%)
Mutual labels:  testing-framework
node-object-hash
Node.js object hash library with properties/arrays sorting to provide constant hashes. It also provides a method that returns sorted object strings that can be used for object comparison without hashes.
Stars: ✭ 69 (+187.5%)
Mutual labels:  hashing-library
polish
Testing Framework for Rust
Stars: ✭ 44 (+83.33%)
Mutual labels:  testing-framework
testkube
☸️ Kubernetes-native framework for test definition and execution
Stars: ✭ 172 (+616.67%)
Mutual labels:  testing-framework
eacirc
Automatic problem solver based on circuit-like representation and genetic programming
Stars: ✭ 13 (-45.83%)
Mutual labels:  hash-functions
Compose
Nice and simple DSL for Espresso Compose UI testing in Kotlin
Stars: ✭ 56 (+133.33%)
Mutual labels:  testing-framework
Wasmite
Now WebAssembly has proper testing, unit-testing and debugging 🤗
Stars: ✭ 20 (-16.67%)
Mutual labels:  testing-framework
page-content-tester
Paco is a Java based framework for non-blocking and highly parallelized Dom testing.
Stars: ✭ 13 (-45.83%)
Mutual labels:  testing-framework
op-test
Testing Firmware for OpenPOWER systems
Stars: ✭ 30 (+25%)
Mutual labels:  testing-framework
hitchstory
Type-safe, StrictYAML based BDD framework for python.
Stars: ✭ 24 (+0%)
Mutual labels:  testing-framework
sbml-test-suite
The SBML Test Suite is a conformance testing system. It allows developers and users to test the degree and correctness of the SBML support provided in a software package.
Stars: ✭ 21 (-12.5%)
Mutual labels:  testing-framework

FastHashes

FashHashes is a .NET implementation of several non-cryptographic hashes.

Status: Build Coverage
Info: License Lines Size
NuGet: Version Downloads
Donation: PayPal

Main Features

  • High-Performing: deeply-optimized code makes extensive use of method inlining and unsafe memory pointers in order to speed up the computations.
  • Allocation-Free: all the internal functions follow a zero-allocation approach, only primitive types and/or arrays of primitive types are used by the algorithms.
  • Endian-Agnostic: all the hashes provide consistent results regardless of the machine byte order, while only moderately affecting the overall performance of the computations.
  • Platform-Agnostic: the code has been developed under .NET Standard 2.0 framework and both x86 and x64 environments are fully supported.

Hashes

The library includes the following non-cryptographic hashes:

Requirements

The following Target Frameworks are defined:

  • Library: .NET Standard 2.0
  • Auxiliary Projects: .NET Core 2.1

The following NuGet packages are required for building the library:

The following NuGet packages are required for performing unit tests:

Performance Benchmarks

Hash Rank Hash Name Bulk Speed Test Average ↓ Chunks Speed Test Average
- DummyHash (Reference) 609.34 GB/s 2.06 GB/s
1 FarmHash64 11.47 GB/s 626.60 MB/s
2 FarmHash128 11.27 GB/s 641.03 MB/s
3 MetroHash128-V1 11.11 GB/s 636.52 MB/s
4 MetroHash64-V1 11.10 GB/s 628.81 MB/s
5 MetroHash128-V2 11.06 GB/s 635.34 MB/s
6 MetroHash64-V2 11.05 GB/s 620.92 MB/s
7 XxHash64 10.03 GB/s 596.90 MB/s
8 MurmurHash128-x64 6.70 GB/s 485.59 MB/s
9 MurmurHash64-x64 6.56 GB/s 467.14 MB/s
10 XxHash32 6.43 GB/s 482.92 MB/s
11 FastHash64 5.34 GB/s 444.45 MB/s
12 FastHash32 5.26 GB/s 440.91 MB/s
13 FarmHash32 4.27 GB/s 394.83 MB/s
14 FastPositiveHash-V1 4.10 GB/s 386.51 MB/s
15 MurmurHash128-x86 4.05 GB/s 383.60 MB/s
16 MurmurHash64-x86 4.01 GB/s 374.73 MB/s
17 FastPositiveHash_V2 3.99 GB/s 386.33 MB/s
18 MurmurHash32 2.82 GB/s 332.35 MB/s
19 MumHash 2.44 GB/s 312.24 MB/s
20 FastPositiveHash-V0 2.29 GB/s 320.69 MB/s
21 SipHash-13 1.28 GB/s 230.67 MB/s
22 HighwayHash256 914.16 MB/s 125.78 MB/s
23 HighwayHash64 899.65 MB/s 151.54 MB/s
24 HighwayHash128 883.51 MB/s 143.84 MB/s
25 SpookyHash32 752.43 MB/s 156.79 MB/s
26 SpookyHash64 734.84 MB/s 149.36 MB/s
27 SipHash-24 734.74 MB/s 168.43 MB/s
28 SpookyHash128 723.91 MB/s 155.67 MB/s
29 HalfSipHash 364.78 MB/s 119.96 MB/s

The tests above have been conducted with the following machine setup:

  • CPU: Intel Core i7-7700HQ @2.80GHz (4 Cores, 8 Threads, 256KB L1 Cache)
  • RAM: 16 GB x DDR4 SO-DIMM @1200MHz
  • OS: Microsoft Windows 10 64-Bit
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].