README.md

ehashids
=====

A NIF for 'hashids.c'. The reason for this library is to accelerate hashids encoding and decoding. Elixir and Erlang
implementations might be too slow for some use cases.

Build
-----

    $ rebar3 compile


Example Usage
-----
    %% Params: ehashids:new(Salt, MinHashLen, Alphabet).
    %% New with defaults also exists see source for details.

    1> R = ehashids:new(<<"mysalt">>, 10, <<"abcdefghijklmnop">>).
    #Ref<0.774867635.3955884033.159343>

    2> {ok, Id} = ehashids:encode(R, [12345]).
    {ok,<<"moadpemeag">>}

    3> ehashids:decode_safe(R, <<"moadpemeag">>).
    {ok,[12345]}

    4> {ok, C} = ehashids:compile(R).
    {ok,{<<98,100,101,103,106,107,108,109,110,111,112,0>>,
    <<103,108,112,98,107,110,106,101,100,109,111,0>>,
    <<109,107,100,101,110,106,103,108,111,112,98,0>>,
    11,
    <<0>>,
    0,
    <<99,102,104,105,0>>,
    4,
    <<97,0>>,
    1,10}}

    5> R1 = ehashids:from_compiled(C).
    #Ref<0.774867635.3955884033.159390>

    6> ehashids:decode_safe(R1, <<"moadpemeag">>).
    {ok,[12345]}