Add :message_pack
as a dependency in your mix.exs
file.
defp deps do
[{:message_pack, "~> 0.2.0"}]
end
# pack
MessagePack.pack([1,2,3]) #=> { :ok, <<147,1,2,3>> }
MessagePack.pack!([1,2,3]) #=> <<147,1,2,3>>
{:ok, iolist, encoded_byte_size} = MessagePack.pack_iodata([1,2,3]) #=> {:ok, [<<147>>, [<<1>>, <<2>>, <<3>>]], 4}
{iolist, encoded_byte_size} = MessagePack.pack_iodata!([1,2,3]) #=> {[<<147>>, [<<1>>, <<2>>, <<3>>]], 4}
# unpack
MessagePack.unpack(<<147,1,2,3>>) #=> { :ok, [1,2,3] }
MessagePack.unpack!(<<147,1,2,3>>) #=> [1,2,3]
# unpack_once
MessagePack.unpack_once(<<147,1,2,3,4>>) #=> {:ok, {[1, 2, 3], <<4>>}}
MessagePack.unpack_once!(<<147,1,2,3,4>>) #=> {[1, 2, 3], <<4>>}
enable_string
Support string type. This options is false
by default.
iex(1)> { :ok, bin } = MessagePack.pack(<<255>>)
{:ok, <<161, 255>>}
iex(3)> MessagePack.unpack(<<161, 255>>)
{:ok, <<255>>}
iex(4)> MessagePack.unpack(<<161, 255>>, enable_string: true)
{:error, {:invalid_string, <<255>>}}
ext
Support extention type.
See test/message_pack_ext_test.exs
.
MIT