All Projects → thomasmueller → Minperf

thomasmueller / Minperf

Licence: apache-2.0
A Minimal Perfect Hash Function Library

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Minperf

Data Structures
Data-Structures using C++.
Stars: ✭ 121 (+13.08%)
Mutual labels:  hash, hashing, bloom-filter
Wyhash Rs
wyhash fast portable non-cryptographic hashing algorithm and random number generator in Rust
Stars: ✭ 44 (-58.88%)
Mutual labels:  algorithm, hash, hashing
komihash
Very fast, high-quality hash function (non-cryptographic, C) + PRNG
Stars: ✭ 68 (-36.45%)
Mutual labels:  hashing, bloom-filter, hash
fastbloom
A simple but fast bloomfilter written in Python
Stars: ✭ 21 (-80.37%)
Mutual labels:  bloom-filter, hash
pthash
Fast and compact minimal perfect hash functions in C++.
Stars: ✭ 62 (-42.06%)
Mutual labels:  hashing, hash
ntHash
Fast hash function for DNA sequences
Stars: ✭ 66 (-38.32%)
Mutual labels:  bloom-filter, hash
agent
hashtopolis.org
Stars: ✭ 19 (-82.24%)
Mutual labels:  hashing, hash
Wyhash
The FASTEST QUALITY hash function, random number generators (PRNG) and hash map.
Stars: ✭ 410 (+283.18%)
Mutual labels:  hash, bloom-filter
Ahash
aHash is a non-cryptographic hashing algorithm that uses the AES hardware instruction
Stars: ✭ 251 (+134.58%)
Mutual labels:  hash, hashing
Bcrypt.net
BCrypt.Net - Bringing updates to the original bcrypt package
Stars: ✭ 422 (+294.39%)
Mutual labels:  algorithm, hash
Rhashmap
Robin Hood hash map library
Stars: ✭ 33 (-69.16%)
Mutual labels:  algorithm, hashing
Thmap
Concurrent trie-hash map library
Stars: ✭ 51 (-52.34%)
Mutual labels:  algorithm, hashing
laravel-hashid
HashId Implementation on Laravel Eloquent ORM
Stars: ✭ 23 (-78.5%)
Mutual labels:  hashing, hash
agent-python
Official python agent for using the distributed hashcracker Hashtopolis
Stars: ✭ 39 (-63.55%)
Mutual labels:  hashing, hash
bromberg sl2
Cayley hashing as in "Navigating in the Cayley Graph of SL₂(𝔽ₚ)"
Stars: ✭ 32 (-70.09%)
Mutual labels:  hashing, hash
Cuckoofilter
Substitute for bloom filter.
Stars: ✭ 270 (+152.34%)
Mutual labels:  algorithm, hashing
Algorithms Study Group
Study group for algorithms in Ruby, hosted at App Academy
Stars: ✭ 94 (-12.15%)
Mutual labels:  algorithm, bloom-filter
haiti
🔑 Hash type identifier (CLI & lib)
Stars: ✭ 287 (+168.22%)
Mutual labels:  hashing, hash
metrohash-rs
Rust MetroHash
Stars: ✭ 45 (-57.94%)
Mutual labels:  hashing, hash
Name That Hash
🔗 Don't know what type of hash it is? Name That Hash will name that hash type! 🤖 Identify MD5, SHA256 and 3000+ other hashes ☄ Comes with a neat web app 🔥
Stars: ✭ 540 (+404.67%)
Mutual labels:  hash, hashing

minperf

A Minimal Perfect Hash Function Library.

  • Mainly written in Java. Includes a C version (currently only evaluation of a MPHF).
  • Can generate, in linear time, MPHFs that need less than 1.58 bits per key.
  • Can generate MPHFs in less than 100 ns/key, evaluation faster than 100 ns/key, at less than 3 bits per key.
  • Concurrent generation.
  • Tested up to 1 billion keys.
  • Two parameters to configure space needed, generation time, and evaluation time.
  • Can be used as a static bloom filter, by storing a hash fingerprint per key.
  • Performance very similar than the Sux4J CHD and GOV algorithms, but configurable, with ability to use less space.

This library should already be usable, but it is still work in progress. The plan is to publish a paper.

The algorithm used is described here as text, and here as slideshow (also available on SlideShare).

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].