hashable: A class for types that can be converted to a hash value

[ bsd3, data, library ] [ Propose Tags ] [ Report a vulnerability ]

This package defines a class, Hashable, for types that can be converted to a hash value. This class exists for the benefit of hashing-based data structures. The package provides instances for basic types and a way to combine hash values.

Hashable is intended exclusively for use in in-memory data structures.

Hashable does not have a fixed standard. This allows it to improve over time.

Because it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values. As such, hashable is not recommended for use other than in-memory datastructures. Specifically, hashable is not intended for network use or in applications which persist hashed values. For stable hashing use named hashes: sha256, crc32, xxhash etc.


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
arch-native

Use -march=native when compiling C sources. Portable implementation is 15-50% slower. Consider enabling this flag if hashing performance is important.

Disabled
random-initial-seed

Randomly initialize the initial seed on each final executable invocation This is useful for catching cases when you rely on (non-existent) stability of hashable's hash functions. This is not a security feature.

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

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

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 1.0.0, 1.0.1.0, 1.0.1.1, 1.1.0.0, 1.1.1.0, 1.1.2.0, 1.1.2.1, 1.1.2.2, 1.1.2.3, 1.1.2.4, 1.1.2.5, 1.2.0.0, 1.2.0.1, 1.2.0.2, 1.2.0.3, 1.2.0.4, 1.2.0.5, 1.2.0.6, 1.2.0.7, 1.2.0.8, 1.2.0.9, 1.2.0.10, 1.2.1.0, 1.2.2.0, 1.2.3.0, 1.2.3.1, 1.2.3.2, 1.2.3.3, 1.2.4.0, 1.2.5.0, 1.2.6.0, 1.2.6.1, 1.2.7.0, 1.3.0.0, 1.3.1.0, 1.3.2.0, 1.3.3.0, 1.3.4.0, 1.3.4.1, 1.3.5.0, 1.4.0.0, 1.4.0.1, 1.4.0.2, 1.4.1.0, 1.4.2.0, 1.4.3.0, 1.4.4.0, 1.4.5.0, 1.4.6.0, 1.4.7.0, 1.5.0.0
Change log CHANGES.md
Dependencies base (>=4.18.0.0 && <4.22), bytestring (>=0.11.5.3 && <0.13), containers (>=0.6.7 && <0.8), deepseq (>=1.4.8.1 && <1.6), filepath (>=1.4.200.1 && <1.6), ghc-bignum (>=1.3 && <1.4), ghc-prim, os-string (>=2.0.2 && <2.1), text (>=2.0.2 && <2.2) [details]
Tested with ghc ==9.6.5 || ==9.8.2 || ==9.8.3 || ==9.10.1 || ==9.12.1
License BSD-3-Clause
Author Milan Straka <fox@ucw.cz> Johan Tibell <johan.tibell@gmail.com>
Maintainer Oleg Grenrus <oleg.grenrus@iki.fi>
Revised Revision 1 made by phadej at 2024-12-19T10:57:25Z
Category Data
Home page http://github.com/haskell-unordered-containers/hashable
Bug tracker https://github.com/haskell-unordered-containers/hashable/issues
Source repo head: git clone https://github.com/haskell-unordered-containers/hashable.git
Uploaded by phadej at 2024-07-04T19:38:39Z
Distributions Arch:1.4.4.0, Debian:1.3.0.0, Fedora:1.4.2.0, FreeBSD:1.2.3.3, LTSHaskell:1.4.7.0, NixOS:1.4.4.0, Stackage:1.5.0.0, openSUSE:1.4.7.0
Reverse Dependencies 1084 direct, 13853 indirect [details]
Downloads 515359 total (1228 in the last 30 days)
Rating 1.5 (votes: 5) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-07-04 [all 1 reports]

Readme for hashable-1.5.0.0

[back to package description]

The hashable package

This package defines a class, Hashable, for types that can be converted to a hash value. This class exists for the benefit of hashing-based data structures. The package provides instances for basic types and a way to combine hash values.