README.md

# erlang-xxhash [![Build Status](https://travis-ci.org/pierreis/erlang-xxhash.svg?branch=master)](https://travis-ci.org/pierreis/erlang-xxhash)

Simple Erlang wrapper for the [xxHash](http://code.google.com/p/xxhash/) algorithm.


## Usage

```erlang
application:start(xxhash).
Text = "test".
Seed = 12345.


%% Simple usage

xxhash:hash32(Text, Seed).               % => 3834992036
xxhash:hash32(Text).                     % => 1042293711

xxhash:hash64(Text, Seed).               % => 7624679986283906467
xxhash:hash64(Text).                     % => 5754696928334414137


%% Advanced usage

Handle32 = xxhash:hash32_init(Seed).
xxhash:hash32_update(Handle32, Text).      % => ok
xxhash:hash32_digest(Handle32).            % => 3834992036 (Intermediate digest)
xxhash:hash32_update(Handle32, <<"Foo">>). % Support for binary values.
xxhash:hash32_update(Handle32, 42).        % Support for integers.
xxhash:hash32_update(Handle32, 13.37).     % Support for floats.
xxhash:hash32_update(Handle32, moo).       % Support for atoms.
xxhash:hash32_digest(Handle32).            % => 3243777239

Handle64 = xxhash:hash64_init(Seed).
xxhash:hash64_update(Handle64, Text).      % => ok
xxhash:hash64_digest(Handle64).            % => 7624679986283906467 (Intermediate digest)
xxhash:hash64_update(Handle64, <<"Foo">>). % Support for binary values.
xxhash:hash64_update(Handle64, 42).        % Support for integers.
xxhash:hash64_update(Handle64, 13.37).     % Support for floats.
xxhash:hash64_update(Handle64, moo).       % Support for atoms.
xxhash:hash64_digest(Handle64).            % => 10617254975351441063
```


## Licenses

This program is distributed under the MIT License.

xxHash library is distributed under New BSD License.


## Bug reports and feature requests

You are very welcome to contribute to this library. To do so, simply report bugs, submit feature requests or
make pull requests on Github: https://github.com/pierresforge/erlang-xxhash.