Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 1.57 KB

README.md

File metadata and controls

64 lines (44 loc) · 1.57 KB

Varint

Elixir CI Coverage Status Hex.pm Hex Docs License

A library to compress integers using LEB128.

Installation

Add :varint to your list of dependencies in mix.exs:

def deps do
  [{:varint, "~> 1.4"}]
end

Usage

LEB128

Use this module to compress and decompress unsigned integers:

iex> Varint.LEB128.encode(300)
<<172, 2>>
iex> Varint.LEB128.decode(<<172, 2>>)
{300, <<>>}

Zigzag

As LEB128 works with unsigned integers, you can use the the Zigzag module to process signed integers.

iex> Varint.Zigzag.encode(-2)
3
iex> Varint.Zigzag.decode(3)
-2
iex> Varint.Zigzag.encode(2)
4
iex> Varint.Zigzag.decode(4)
2

You'll find detailed instructions at hexdocs.pm.

License

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.