Skip to main content

Hashstate

This is a Python C extension module that forks the hashlib implementation from CPython itself to add support for a single feature: the ability to serialize and deserialize hash objects so that the hash objects do not have to persist in memory for the whole duration of the hash computation.

Usage

pip install hashstate
import hashstate

# Contains all the same constructors as hashlib
hash1 = hashstate.sha512()
hash1.update('...')
s = hash1.serialize()  # gives back bytes object

hash2 = hashstate.sha512()
hash2.deserialize(s)
assert hash1.digest() == hash2.digest()

Developers

Build the package (requires openssl on your build paths):

python setup.py sdist bdist_wheel

If building a MacOS wheel, also run:

delocate-wheel -v ./dist/*-macosx_*.whl

Build the linux bdist_wheels (64-bit only at the moment):

docker build -t manylinux-hashstate .
docker run --rm -v $(pwd)/dist:/dist manylinux-hashstate

Upload to pypi

twine upload dist/*

Release files for hashstate 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hashstate 0.2.1
File Size Uploaded
hashstate-0.2.1.tar.gz 7.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for hashstate 0.2.1
File
hashstate-0.2.1-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
hashstate-0.2.1-cp36-cp36m-macosx_10_13_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.13+ x86-64 Details
hashstate-0.2.1-cp35-cp35m-manylinux1_x86_64.whl CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64 Details
hashstate-0.2.1-cp34-cp34m-manylinux1_x86_64.whl CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64 Details

Total release size: 5.0 MB

Release files / hashstate-0.2.1.tar.gz

Download URL hashstate-0.2.1.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cf6bf57487d00975fa60d6c3853b79052a35143b3d434c0e5539ecc9a13b28e8
BLAKE2b-256 checksum
How to use checksums
102a63951a821f59d2a8856646adb41fc6bea5111218e326145dc388531ac0aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release files / hashstate-0.2.1-cp36-cp36m-manylinux1_x86_64.whl

Download URL hashstate-0.2.1-cp36-cp36m-manylinux1_x86_64.whl
Size 1.3 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
29218c434dd0a7ba558150dd96ae6b1149b5f2960b835e8e9bc9c9eebd4bf733
BLAKE2b-256 checksum
How to use checksums
bd9a035059bb0600faf1d83ea9a0f4871062e1008275dd42827091a400af8a62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release files / hashstate-0.2.1-cp36-cp36m-macosx_10_13_x86_64.whl

Download URL hashstate-0.2.1-cp36-cp36m-macosx_10_13_x86_64.whl
Size 1.1 MB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
3370c8a053fedce28c7612fa6ed3184df17f7c05b8dde0112765c3a628015d6b
BLAKE2b-256 checksum
How to use checksums
55ee70e6ebcbdf7a2be41ff402bc7e21db3480309b79063d8c77efc742605ed1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release files / hashstate-0.2.1-cp35-cp35m-manylinux1_x86_64.whl

Download URL hashstate-0.2.1-cp35-cp35m-manylinux1_x86_64.whl
Size 1.3 MB
Tags CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
d8644b54a73370bc85c23af3ae4887ca4f46d4e1cd8b8515a13c6303dad45a09
BLAKE2b-256 checksum
How to use checksums
7e8ff9f567665bdae9325470ad792e1a52e9c9c639436b99bbb8e0a4cf3fbe5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release files / hashstate-0.2.1-cp34-cp34m-manylinux1_x86_64.whl

Download URL hashstate-0.2.1-cp34-cp34m-manylinux1_x86_64.whl
Size 1.3 MB
Tags CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b0e02669e354582877e62f8d564b5bf54d032ec581c50f24c8a16eed40cb4ae4
BLAKE2b-256 checksum
How to use checksums
ce01d11d7d9fb3dd09a0dc4c08cf18aef44a671f058d8e08b191aa0f0776e4b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release history Release notifications | RSS feed

This release

0.2.1 This release

5 release files

0.2.0

5 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

3 release files

0.1

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page