NAME
Crypt::xxHash - xxHash implementation for Perl
SYNOPSIS
use Crypt::xxHash qw/
xxhash32 xxhash32_hex
xxhash64 xxhash64_hex
xxhash3_64bits xxhash3_64bits_hex
xxhash3_128bits_hex /;
my $hash = xxhash32( $data, $seed );
my $hex = xxhash32_hex( $data, $seed );
my $hash_64 = xxhash64( $data, $seed );
my $hex_64 = xxhash64_hex( $data, $seed );
my $hash_64 = xxhash3_64bits( $data, $seed );
my $hex_64 = xxhash3_64bits_hex( $data, $seed );
my $hex_128 = xxhash3_128bits_hex( $data, $seed );
DESCRIPTION
xxHash is a super fast algorithm that claims to work at speeds close to RAM limits.
This package provides 32- and 64-bit hash functions.
As bonus it provides 128-bit hex method.
This package was inspired by C, but it includes the fresh C code and has
some optimisations. Thus all hex methods are implemented in Perl XS.
Also this module doesn't use C in favor of native 64 bit digits.
$h = xxhash32( $data, $seed )
Returns a 32 bit hash.
$h = xxhash32_hex( $data, $seed )
Returns a 32 bit hash converted into hex string.
$h = xxhash64( $data, $seed )
Returns a 64 bit hash.
$h = xxhash64_hex( $data, $seed )
Returns a 64 bit hash converted into hex string
$h = xxhash3_64bits( $data, $seed )
Returns a 64 bit hash which calculated by using xxHash3 algorithm.
$h = xxhash3_64bits_hex( $data, $seed )
Returns a 64 bit hash which calculated by using xxHash3 algorithm.
This hash is converted into hex string.
$h = xxhash3_128its_hex( $data, $seed )
Returns a 128 bit hash which calculated by using xxHash3 algorithm.
This hash is converted into hex string.
SPEED
There are some official benchmark results can be found on the project
web-site L
BENCHMARKS
Below you can find some benchmarks in comparison with C.
The "xxhash32" methods in those two packages have the same realisation.
so they have the same throughput capacity.
But other methods have some differences:
Rate Digest::xxHash::xxhash32_hex Crypt::xxHash::xxhash32_hex
Digest::xxHash::xxhash32_hex 2577320/s -- -54%
Crypt::xxHash::xxhash32_hex 5543237/s 115% --
Rate Digest::xxHash::xxhash64 Crypt::xxHash::xxhash64
Digest::xxHash::xxhash64 201729/s -- -99%
Crypt::xxHash::xxhash64 14893617/s 7283% --
Rate Digest::xxHash::xxhash64_hex Crypt::xxHash::xxhash64_hex
Digest::xxHash::xxhash64_hex 185048/s -- -96%
Crypt::xxHash::xxhash64_hex 4926108/s 2562% --
LICENSE
xxHash is covered by the BSD license.
AUTHOR
Chernenko Dmitiry cdn@cpan.org
xxHash by Yann Collet.