rybakit/msgpack
A pure PHP implementation of the MessagePack serialization format.
v0.10.0
11M downloads/mo
#1082 most downloaded on Packagist
rybakit/msgpack.php
What this package is like to depend on
Last release 4 months ago
22 Apr 2026
Ships unpredictably
gaps range from 2 weeks to 3.8 years
Some releases are documented
notes for 10 of 23 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
23 releases · first in 2015
2 releases in the last 12 months
see the full history below
Release timeline
23 releases · Dec 2015 to Apr 2026Releases
latest 23-
v0.10.022 Apr 2026Release notes
Open source →- Raised the minimum supported PHP version to 8.2
- Updated the development toolchain: PHPUnit 11, PHP CS Fixer 3, and Psalm 5/6
- Removed the old PHPUnit compatibility layer and updated the test suite/configuration accordingly
- Replaced manual array/list detection with
array_is_list() - Improved examples and README, including a few defensive fixes and PHP 8.2-style cleanups
- Added
ext-decimaltorequire-dev - Updated GitHub Actions to use the current actions/checkout version
-
v0.9.218 Dec 2025 -
v0.9.116 Feb 2022Release notes
Open source →- Added support for the Timestamp extension type
- Added PHP 8.1 to the test matrix and bumped test coverage to 100%
-
v0.9.025 Oct 2021Release notes
Open source →- Moved the
MessagePack\Extclass toMessagePack\Type\Ext - Moved the
MessagePack\TypeTransformer\CanPackinterface toMessagePack\CanPack - Moved the
MessagePack\TypeTransformer\Extensioninterface toMessagePack\Extension - Introduced the
MessagePack\CanBePackedinterface, updated theMessagePack\Type\Map,MessagePack\Type\BinandMessagePack\Type\Extclasses to implement the interface - Removed the obsolete
MessagePack\TypeTransformer\MapTransformerandMessagePack\TypeTransformer\BinTransformertransformers, addedMessagePack\TypeTransformer\TraversableTransformer - Overflowed map integer keys are now always unpacked to strings, even if the
BIGINT_AS_GMPorBIGINT_AS_DECunpacking option is set - Added more examples and improved existing ones
- Added Psalm, a static analysis tool for PHP
- Moved the
-
v0.8.018 Mar 2021Release notes
Open source →- Made the
PackOptions::FORCE_STRoption the default - Micro-optimized the creation of GMP objects
- Updated README and example scripts
- Switched to GH actions
- Made the
-
v0.7.218 Dec 2020 -
v0.7.104 Dec 2020Release notes
Open source →- Added PHP 8 support
- Added
MessagePack\TypeTransformer\StreamTransformerto pack stream resources intoMP_BIN - Removed trailing dot from error messages
-
v0.7.027 Jan 2020Release notes
Open source →Added
BufferUnpacker::getRemainingCount()BufferUnpacker::hasRemaining()BufferUnpacker::release()UnpackOptions::BIGINT_AS_DEC
Removed
InsufficientDataException::unexpectedLength()IntegerOverflowExceptionUnpackOptions::BIGINT_AS_EXCEPTION
Changed
BufferUnpacker::tryUnpack()no longer releases the read buffer, to release the buffer useBufferUnpacker::release()
Fixed
- Fixed the
BufferUnpackerconstructor to acceptUnpackOptionsinstead ofPackOptions - Fixed checking the buffer size required to unpack
Ext(previously theExt"type" byte wasn't taken into account which could result in a noticeUninitialized string offsetfor extensions with zero-length data) - Forbade non-int/string map keys (previously they were silently cast to int/string which could result in a warning
Illegal offset type)
Misc
- Added a target file for PHP-Fuzzer
- Added
.gitattributes - Switched default PHP version in Docker to 7.4
- Applied minor optimizations
-
v0.6.102 Oct 2019 -
v0.6.030 Sep 2019Release notes
Open source →Added
- Methods:
BufferUnpacker::extendWith()BufferUnpacker::withBuffer()BufferUnpacker::read()Packer::extendWith()
- Interfaces:
TypeTransformer\Extension
- Classes:
Tests\Perf\Benchmark\PausableBenchmark
Renamed
Type\Binary→Type\BinTypeTransformer\BinaryTransformer→TypeTransformer\BinTransformerTypeTransformer\Packable→TypeTransformer\CanPack
Changed
BufferUnpacker::__construct()now acceptsExtension[] $extensionsas the third argumentPacker::__construct()now acceptsCanPack[] $transformersas the second argument
Removed
- Methods:
BufferUnpacker::__clone()
Cloning a BufferUnpacker object no longer resets the internal buffer, to get the old behavior
use$unpacker = $unpacker->withBuffer('')BufferUnpacker::registerTransformer()Packer::registerTransformer()
- Interfaces:
TypeTransformer\Unpackable
- Methods:
-
v0.5.401 Jan 2019Nothing published for this version
-
v0.5.315 Jun 2018Nothing published for this version
-
v0.5.215 Jun 2018Nothing published for this version
-
v0.5.124 May 2018Nothing published for this version
-
v0.5.022 May 2018Nothing published for this version
-
v0.4.118 May 2018Nothing published for this version
-
v0.4.013 May 2018Nothing published for this version
-
v0.3.118 Apr 2018Nothing published for this version
-
v0.3.015 Apr 2018Nothing published for this version
-
v0.2.211 Mar 2017Nothing published for this version
-
v0.2.127 Sep 2016Nothing published for this version
-
v0.2.024 Sep 2016Nothing published for this version
-
v0.1.022 Dec 2015Nothing published for this version