A library to compress integers using LEB128.
Add :varint to your list of dependencies in mix.exs:
def deps do
[{:varint, "~> 1.4"}]
endUse this module to compress and decompress unsigned integers:
iex> Varint.LEB128.encode(300)
<<172, 2>>iex> Varint.LEB128.decode(<<172, 2>>)
{300, <<>>}As LEB128 works with unsigned integers, you can use the Zigzag module to process signed integers.
iex> Varint.Zigzag.encode(-2)
3iex> Varint.Zigzag.decode(3)
-2iex> Varint.Zigzag.encode(2)
4iex> Varint.Zigzag.decode(4)
2You'll find detailed instructions at hexdocs.pm.
Copyright (c) 2016 Alexandre Hamez
This work is free. You can redistribute it and/or modify it under the terms of the MIT License. See the LICENSE file for more details.