Skip to main content

Python 3.7+ FNV (fnv0, fnv1, fnv1a) non-cryptographic hash library implemented in C through libffi

Project description

fnv-c

GitHub Workflow Status

What is it?

fnv-c is a Python 3.7+ FNV (fnv0, fnv1, fnv1a) non-cryptographic hash library implemented in C through libffi.

Features

  • speed: 4 000% faster than basic Python implementation, 40% faster than pyhash
  • portability:
    • tested with recent Python versions (3.7+)
    • compatible with ARM64 and avoid too agressive CPU optimizations
    • compatible with PyPy
  • two variants: 32bits (fnv0_32()) and 64bits (fnv0_64())

Non features

  • other hash algorithms (this library is about a specific algorithm)

How to install/use it?

pip install git+https://github.com/botify-labs/fnv-c.git#egg=fnv_c
import fnv_c

print(fnv_c.fnv0_32(b"foo bar"))
print(fnv_c.fnv0_64(b"foo bar"))

Function signatures / API

Full API doc is available at: https://botify-labs.github.io/fnv-c/fnv_c/

Dev

pip install -r dev-requirements.txt
python setup.py develop

# get all tasks (lint, test, clean...)
invoke --list

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fnv-c-0.1.4.tar.gz (2.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page