Skip to content

esl/base16

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Base16 encoding and decoding

Actions Status codecov Hex

API

Both encode/1 and decode/1 functions are of (binary()) -> binary() type.

The usage looks like:

B = crypto:rand_bytes(10).
H = base16:encode(B).
B = base16:decode(H).

Please, note:

  • base16:encode/1 returns lower-case letters.
  • base16:decode/1 requires the argument to be a binary of odd-number size, and it parses both in upper-case or lower-case encoding.

Implementation

Code is implemented using lookup tables, which tremendously speeds-up the algorithm and consumes constant memory. It's the fastest you can get using pure Erlang code!

NOTE

Note that, lookup tables also means that the code-size is bigger. If you're running on embedded, where smaller code-sizes are the actual best, you might benefit from using the version 1.0.0, both available on github and hex.

License

The library itself is licensed under the MIT License.

The tests, due to dependency on PropEr, are licensed under the GPLv3 license.