All Projects → julian-klode → triehash

julian-klode / triehash

Licence: MIT license
Generator for order-preserving minimal perfect hash functions in C

Programming Languages

shell
77523 projects
perl
6916 projects

Projects that are alternatives of or similar to triehash

Nexus Repository Apt
A Nexus Repository 3 plugin that allows usage of apt repositories
Stars: ✭ 109 (+202.78%)
Mutual labels:  apt
Apt cybercriminal campagin collections
APT & CyberCriminal Campaign Collection
Stars: ✭ 2,572 (+7044.44%)
Mutual labels:  apt
repo.me
a modern apt repository template built by the community
Stars: ✭ 159 (+341.67%)
Mutual labels:  apt
Pacaptr
Pacman-like syntax wrapper for many package managers.
Stars: ✭ 138 (+283.33%)
Mutual labels:  apt
Fzf Scripts
a collection of scripts that rely on https://github.com/junegunn/fzf
Stars: ✭ 158 (+338.89%)
Mutual labels:  apt
Mason
Cross platform package manager for C/C++ apps
Stars: ✭ 230 (+538.89%)
Mutual labels:  apt
Apt Offline
Offline APT Package Manager
Stars: ✭ 102 (+183.33%)
Mutual labels:  apt
yara-exporter
Exporting MISP event attributes to yara rules usable with Thor apt scanner
Stars: ✭ 22 (-38.89%)
Mutual labels:  apt
Aptly
aptly - Debian repository management tool
Stars: ✭ 2,065 (+5636.11%)
Mutual labels:  apt
Gendalf
Android annotations processor for Shared Preferences
Stars: ✭ 38 (+5.56%)
Mutual labels:  apt
Xmodulable
组件化/模块化
Stars: ✭ 140 (+288.89%)
Mutual labels:  apt
Elegantbus
🔥🔥Android 平台,基于LivaData的EventBus,无侵入,更优雅,支持跨进程,跨应用粘性事件,自定义事件等功能。
Stars: ✭ 156 (+333.33%)
Mutual labels:  apt
LibSWIFFT
LibSWIFFT - A fast C/C++ library for the SWIFFT secure homomorphic hash function
Stars: ✭ 23 (-36.11%)
Mutual labels:  hash-functions
Termux Apt Repo
Script to create Termux apt repositories.
Stars: ✭ 131 (+263.89%)
Mutual labels:  apt
apt
Java Annotation Processor Tool,动态生成getter/setter方法(像Lombok一样)。
Stars: ✭ 28 (-22.22%)
Mutual labels:  apt
Vulrec
Vulnerability Recurrence:漏洞复现记录
Stars: ✭ 109 (+202.78%)
Mutual labels:  apt
Apt
Development repository for the apt cookbook
Stars: ✭ 201 (+458.33%)
Mutual labels:  apt
crypto-primitives
Interfaces and implementations of cryptographic primitives, along with R1CS constraints for them
Stars: ✭ 76 (+111.11%)
Mutual labels:  hash-functions
debianopt-repo
Additional debian repository for awesome open-source projects.
Stars: ✭ 47 (+30.56%)
Mutual labels:  apt
node-express-reddit-clone
Build a Node, Express and MySQL-based clone of Reddit for DecodeMTL web development bootcamp
Stars: ✭ 28 (-22.22%)
Mutual labels:  hash-functions

Order-preserving minimal perfect hash function generator

Build order-preserving minimal perfect hash functions.

codecov Build Status

Performance

Performance was evaluated against other hash functions. As an input set, the fields of Debian Packages and Sources files was used, and each hash function was run 1,000,000 times for each word. The byte count of the words were then summed up and divided by the total number of nanoseconds each function ran, so all speeds below are given in bytes per nanosecond, AKA gigabyte per second.

arch/function jak-x230 (amd64) backup (amd64) asachi.d.o (arm64) asachi.d.o (armel) asachi.d.o (armhf) plummer.d.o (ppc64el) eller.d.o (mipsel)
Trie 2.4 1.9 1.2 0.9 0.8 2.0 0.2
Trie (*) 2.2 1.7 0.8 0.7 0.7 1.8 0.2
re2c 1.7 1.3 0.9 0.9 0.7 1.6 0.2
re2c (*) 1.2 0.9 0.6 0.6 0.5 1.1 0.1
gperf (*) 0.7 0.5 0.2 0.2 0.2 0.5 0.1
gperf 1.3 0.9 0.3 0.3 0.2 0.4 0.1
djb (*) 0.7 0.5 0.3 0.3 0.3 0.5 0.1
djb (**) 1.0 0.7 0.4 0.5 0.5 0.6 0.2
djb 0.9 0.7 0.5 0.5 0.5 0.7 0.2
apt (*) 1.2 0.9 0.7 0.7 0.7 1.1 0.2
apt (**) 2.3 1.7 0.7 0.9 0.8 1.9 0.2

And transposed:

function/arch Trie Trie (*) re2c re2c (*) gperf (*) gperf djb (*) djb (**) djb apt (*) apt (**)
jak-x230 (amd64) 2.4 2.2 1.7 1.2 0.7 1.3 0.7 1.0 0.9 1.2 2.3
backup (amd64) 1.9 1.7 1.3 0.9 0.5 0.9 0.5 0.7 0.7 0.9 1.7
asachi.d.o (arm64) 1.2 0.8 0.9 0.6 0.2 0.3 0.3 0.4 0.5 0.7 0.7
asachi.d.o (armel) 0.9 0.7 0.9 0.6 0.2 0.3 0.3 0.5 0.5 0.7 0.9
asachi.d.o (armhf) 0.8 0.7 0.7 0.5 0.2 0.2 0.3 0.5 0.5 0.7 0.8
plummer.d.o (ppc64el) 2.0 1.8 1.6 1.1 0.5 0.4 0.5 0.6 0.7 1.1 1.9
eller.d.o (mipsel) 0.2 0.2 0.2 0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2

Legend:

  • The () variants are case-insensitive, (**) are more optimised versions of the () versions.
  • DJB (*) is a DJB Hash with naive lowercase conversion, DJB (**) just ORs one bit into each value to get alphabetical characters to be lowercase
  • APT (*) is the AlphaHash function from APT which hashes the last 8 bytes in a word in a case-insensitive manner. APT (**) is the same function unrolled.
  • All hosts except the x230 are Debian porterboxes. The x230 has a Core i5-3320M, barriere has an Opteron 23xx.

Notes:

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