- Dropped support for Elixir versions before 1.6.
- Fixed a deprecation warning from
Bitwise
.
- Added support for iolists in
Msgpax.Ext
. - Fixed iolist
Msgpax.Fragment
inspecting.
- Introduced support for MessagePack data fragment manipulation.
- Optimized unpacking even more for typical usage scenarios.
- Fixed error raising in
Msgpax.pack/1
when protocolMsgpax.Packer
is not implemented for the given data types. - Complete IEEE 754 support: added NaN and ±infinity.
- Optimized list and map packing.
- Optimized packing by generating less garbage.
- Fixed bare struct unpacking in
Msgpax.PlugParser
—the same behaviour when unpacking maps.
- Fixed deprecation warnings for using non-empty lists with the Collectable protocol.
- Added the
:unpacker
option support inMsgpax.PlugParser
.
- Made unpacking even slightly more optimized.
- Added support for the Timestamp extension type.
- Improved handling of reserved extension types—unpacking will not fail for reserved extension types added in future.
- Optimized unpacking by using single match context.
- Optimized packing by producing smaller iodata.
Breaking changes:
- Dropped support for Elixir versions before 1.4.
- Converted all error reasons to proper exceptions: non-raising functions now return
{:error, Msgpax.PackError.t | Msgpax.UnpackError.t}
in case of failure instead of{:error, term}
. - Stopped packing keyword lists as maps and started raising an exception when trying to pack a keyword list: from now on explicit conversion from keyword lists to maps is required, or alternatively the
Msgpax.Packer
protocol must be implemented for tuples.
- Added the
:include_struct_field
option forMsgpax.Packer
protocol deriving.
- Added the
:iodata
option toMsgpax.pack/2
andMsgpax.pack!/2
. - Added the
Msgpax.Ext.Unpacker
behaviour. - Added the
Msgpax.PlugParser
module which implements thePlug.Parsers
behaviour. - Added the
:fields
option for@derive
.
Breaking changes:
- Renamed
Msgpax.Packer.transform/1
toMsgpax.Packer.pack/1
, so all protocol implementations should be updated.