jjanczyszyn / pyfasthash

Python Non-cryptographic Hash Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction Travis CI Status

pyhash is a python non-cryptographic hash library. It provide several common hash algorithms with C/C++ implementation for performance.

>>> import pyhash
>>> hasher = pyhash.fnv1_32()
>>> hasher('hello world')
2805756500L

>>> hasher('hello', ' ', 'world')
2805756500L

>>> hasher('hello ')
406904344
>>> hasher('world', seed=406904344)
2805756500L

Installation

Please use pyhash to install it from pypi

$sudo pip install pyhash

Notes: pyhash depends on Boost library to build

  • Ubuntu

sudo apt-get install libboost-all-dev

  • CentOS

sudo yum install boost-devel

  • OSX

brew install boost boost-python

Algorithms

pyhash support the following hash algorithms

  • FNV (Fowler-Noll-Vo) hash
    • fnv1_32
    • fnv1a_32
    • fnv1_64
    • fnv1a_64
  • MurmurHash 1/2/3
    • murmur1_32
    • murmur1_aligned_32
    • murmur2_32
    • murmur2a_32
    • murmur2_aligned_32
    • murmur2_neutral_32
    • murmur2_x64_64a
    • murmur2_x86_64b
    • murmur3_32
    • murmur3_x86_128
    • murmur3_x64_128
  • lookup3
    • lookup3 # base on sys.byteorder
    • lookup3_little
    • lookup3_big
  • SuperFastHash
    • super_fast_hash
  • City Hash _ city_32
    • city_64
    • city_128
    • city_crc_128
  • Spooky Hash
    • spooky_32
    • spooky_64
    • spooky_128
  • FarmHash
    • farm_32
    • farm_64
    • farm_128
  • MetroHash
    • metro_64
    • metro_128
    • metro_crc_64
    • metro_crc_128
  • MumHash
    • mum_64 NEW!
  • T1Hash
    • t1_32 NEW!
    • t1_32_be NEW!
    • t1_64 NEW!
    • t1_64_be NEW!
  • XXHash
    • xx_32 NEW!
    • xx_64 NEW!

About

Python Non-cryptographic Hash Library


Languages

Language:C 78.3%Language:C++ 9.8%Language:Python 9.1%Language:Makefile 2.7%