NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1115 most downloaded on Packagist
A pure PHP implementation of the MessagePack serialization format.
Last release 12 days ago
25 Sep 2026
Ships unpredictably
gaps range from 2 weeks to 3.8 years
Some releases are documented
notes for 13 of 26 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
26 releases · first in 2015
Reduced repeated nesting-depth calculations when unpacking arrays and maps.
Full Changelog: v0.11.1...v0.11.2
Added an optional maximum nesting depth to BufferUnpacker::tryUnpack() .
BufferUnpacker::tryUnpack().Full Changelog: v0.11.0...v0.11.1
One column per quarter.
Credit : Thanks to Diptendu Mohan Kar for reporting the vulnerabilities.
BufferUnpacker::unpack(), unpackArray(), and unpackMap().Credit: Thanks to Diptendu Mohan Kar for reporting the vulnerabilities.
Full Changelog: v0.10.0...v0.11.0
Raised the minimum supported PHP version to 8.2
array_is_list()ext-decimal to require-devMask chr input to prevent deprecation warnings on PHP 8.5 by @DemonTPx in #40
Added support for the Timestamp extension type
Moved the MessagePack\Ext class to MessagePack\Type\Ext
MessagePack\Ext class to MessagePack\Type\ExtMessagePack\TypeTransformer\CanPack interface to MessagePack\CanPackMessagePack\TypeTransformer\Extension interface to MessagePack\ExtensionMessagePack\CanBePacked interface, updated the MessagePack\Type\Map, MessagePack\Type\Bin and MessagePack\Type\Ext classes to implement the interfaceMessagePack\TypeTransformer\MapTransformer and MessagePack\TypeTransformer\BinTransformer transformers, added MessagePack\TypeTransformer\TraversableTransformerBIGINT_AS_GMP or BIGINT_AS_DEC unpacking option is setMade the PackOptions::FORCE_STR option the default
PackOptions::FORCE_STR option the defaultAdded Packer::packFloat32() and Packer::packFloat64()
Added Packer::packFloat32() and Packer::packFloat64()
Added MessagePack\TypeTransformer\StreamTransformer to pack stream resources into MP_BIN
MessagePack\TypeTransformer\StreamTransformer to pack stream resources into MP_BINBufferUnpacker::getRemainingCount()
BufferUnpacker::getRemainingCount()BufferUnpacker::hasRemaining()BufferUnpacker::release()UnpackOptions::BIGINT_AS_DECInsufficientDataException::unexpectedLength()IntegerOverflowExceptionUnpackOptions::BIGINT_AS_EXCEPTIONBufferUnpacker::tryUnpack() no longer releases the read buffer, to release the buffer use BufferUnpacker::release()BufferUnpacker constructor to accept UnpackOptions instead of PackOptionsExt (previously the Ext "type" byte wasn't taken into account which could result in a notice Uninitialized string offset for extensions with zero-length data)Illegal offset type).gitattributesGave transformers a higher priority than raw extensions while packing
Gave transformers a higher priority than raw extensions while packing
Tests\Perf\Benchmark\PausableBenchmark
BufferUnpacker::extendWith()BufferUnpacker::withBuffer()BufferUnpacker::read()Packer::extendWith()TypeTransformer\ExtensionTests\Perf\Benchmark\PausableBenchmarkType\Binary → Type\BinTypeTransformer\BinaryTransformer → TypeTransformer\BinTransformerTypeTransformer\Packable → TypeTransformer\CanPackBufferUnpacker::__construct() now accepts Extension[] $extensions as the third argumentPacker::__construct() now accepts CanPack[] $transformers as the second argumentBufferUnpacker::__clone()$unpacker = $unpacker->withBuffer('')BufferUnpacker::registerTransformer()Packer::registerTransformer()TypeTransformer\UnpackableNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →