hashabler: Principled, cross-platform & extensible hashing of types, including an implementation of the FNV-1a algorithm.
This package is a rewrite of the hashable
library by Milan Straka and
Johan Tibell, having the following goals:
Extensibility; it should be easy to implement a new hashing algorithm on any
Hashable
type, for instance if one needed more hash bitsHonest hashing of values, and principled hashing of algebraic data types (see e.g. hashable issues #74 and #30)
Cross-platform consistent hash values, with a versioning guarantee. Where possible we ensure morally identical data hashes to indentical values regardless of processor word size and endianness.
Make implementing identical hash routines in other languages as painless as possible. We provide an implementation of a simple hashing algorithm (FNV-1a) and make an effort define Hashable instances in a way that is well-documented and sensible, so that e.g. one can (hopefully) easily implement string hashing routine in JavaScript that will match the way we hash strings here.
Versioning: Except for instances where we specifically note that we make no promise of consistency, changes to hash values entail a major version number bump.
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
integer-gmp | Are we using integer-gmp to provide fast Integer instances? | Enabled |
dev | To build tests, executables and benchmarks do `configure -fdev --enable-tests` and run the built executables by hand. | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- hashabler-0.1.0.2.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2, 1.0, 1.1, 1.2, 1.2.1, 1.3.0, 2.0.0 |
---|---|
Dependencies | array, base (>=4.4 && <4.10), bytestring, ghc-prim, integer-gmp (>=0.2), primitive, template-haskell, text [details] |
License | BSD-3-Clause |
Author | Brandon Simmons |
Maintainer | brandon.m.simmons@gmail.com |
Revised | Revision 1 made by HerbertValerioRiedel at 2017-06-03T16:58:38Z |
Category | Data |
Home page | https://github.com/jberryman/hashabler |
Source repo | head: git clone https://github.com/jberryman/hashabler.git |
Uploaded | by BrandonSimmons at 2015-04-30T14:32:49Z |
Distributions | |
Reverse Dependencies | 2 direct, 0 indirect [details] |
Downloads | 8965 total (39 in the last 30 days) |
Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2015-04-30 [all 1 reports] |