rybakit/msgpack
Pure PHP MessagePack serializer. Fully compliant with the latest spec, supports streaming unpacking, unsigned 64-bit integers, object serialization via custom types/extensions, and is well tested with good performance. Install via Composer; pack/unpack easily.
Full Changelog: https://github.com/rybakit/msgpack.php/compare/v0.9.1...v0.9.2
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 setPackOptions::FORCE_STR option the defaultAdded Packer::packFloat32() and Packer::packFloat64()
MessagePack\TypeTransformer\StreamTransformer to pack stream resources into MP_BINBufferUnpacker::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
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()
Cloning a BufferUnpacker object no longer resets the internal buffer, to get the old behavior
use $unpacker = $unpacker->withBuffer('')BufferUnpacker::registerTransformer()Packer::registerTransformer()TypeTransformer\UnpackableMessagePack\BufferUnpacker::skip()$whence) was removed from MessagePack\BufferUnpacker::seek()MessagePack\BufferUnpacker::seek()MessagePack\TypeTransformer\Unpackable interfaceMessagePack\TypeTransformer\Extension interfaceMessagePack\PackOptions::isForceBinMode()MessagePack\PackOptions::isForceMapMode()MessagePack\UnpackOptions::isBigIntAsExceptionMode()This release drops support for old PHP versions and HHVM. The minimum PHP version requirement is 7.1.1.
MessagePack\Exception\InsufficientDataException::unexpectedLength()MessagePack\Exception\InvalidOptionException::outOfRange()MessagePack\Exception\PackingFailedException::unsupportedType()MessagePack\Exception\UnpackingFailedException::unknownCode()MessagePack\Exception\UnpackingFailedException::unexpectedCode()MessagePack\PackOptions::fromDefaults()MessagePack\UnpackOptions::fromDefaults()MessagePack\Exception\IntegerOverflowException::__construct()MessagePack\Exception\PackingFailedException::__construct()MessagePack\Tests\Perf\Runner::__construct()MessagePack\Tests\Perf\Runner::run()MessagePack\Packer::UTF8_REGEX from public to private.php_cs.dist)MessagePack\Exception\InvalidCodeExceptionMessagePack\Exception\InsufficientDataException::fromOffset()MessagePack\Exception\InvalidOptionException::fromValidOptions()MessagePack\BufferUnpacker::__clone()MessagePack\Packer::registerTransformer() and MessagePack\BufferUnpacker::registerTransformer() fluentMessagePack\Packer::pack() for nulls and boolsClasses
MessagePack\Exception\InvalidCodeExceptionMessagePack\Exception\InvalidOptionExceptionMessagePack\Type\BinaryMessagePack\Type\MapMessagePack\TypeTransformer\BinaryTransformerMessagePack\TypeTransformer\MapTransformerMessagePack\MessagePackMessagePack\PackOptionsMessagePack\UnpackOptionsInterfaces
MessagePack\TypeTransformer\PackableMessagePack\TypeTransformer\ExtensionMethods
MessagePack\BufferUnpacker::registerTransformer()MessagePack\BufferUnpacker::unpackNil()MessagePack\BufferUnpacker::unpackBool()MessagePack\BufferUnpacker::unpackInt()MessagePack\BufferUnpacker::unpackFloat()MessagePack\BufferUnpacker::unpackArray()MessagePack\BufferUnpacker::unpackArrayHeader()MessagePack\BufferUnpacker::unpackMap()MessagePack\BufferUnpacker::unpackMapHeader()MessagePack\BufferUnpacker::unpackExt()MessagePack\Packer::registerTransformer()MessagePack\Packer::packArrayHeader()MessagePack\Packer::packMapHeader()[@slow](https://github.com/slow) and [@pecl_comp](https://github.com/pecl_comp) groups of tests which can be assigned to the MP_BENCH_TESTS environment variable
PHP CS Fixer configuration file, .php_cs.dist
MessagePack\BufferUnpacker::__construct()MessagePack\Packer::__construct()MessagePack\Packer::packExt()MessagePack\Ext class was marked as finalMessagePack\Tests\DataProvider::provideData()Classes
MessagePack\UnpackerMessagePack\TypeTransformer\CollectionInterfaces
MessagePack\TypeTransformer\TypeTransformerMethods
MessagePack\BufferUnpacker::setTransformers()MessagePack\BufferUnpacker::getTransformers()MessagePack\BufferUnpacker::setIntOverflowMode()MessagePack\BufferUnpacker::getIntOverflowMode()MessagePack\Packer::setTransformers()MessagePack\Packer::getTransformers()MessagePack\Packer::setTypeDetectionMode()MessagePack\Ext::getType()MessagePack\Ext::getData()Constants
MessagePack\BufferUnpacker::INT_AS_EXCEPTIONMessagePack\BufferUnpacker::INT_AS_STRMessagePack\BufferUnpacker::INT_AS_GMPMessagePack\Packer::FORCE_STRMessagePack\Packer::FORCE_BINMessagePack\Packer::FORCE_ARRMessagePack\Packer::FORCE_MAPInsufficientDataExceptionBufferUnpackerTarget/PackerTarget constructorsis_double() with is_float()Optimized utf8/bin auto detection when pcre.jit=0
MessagePack\Packer::packDouble() to MessagePack\Packer::packFloat()tests/Perf/Filter/RegexpFilter.php, renamed tests/Perf/Filter/NameFilter.php to tests/Perf/Filter/ListFilter.php, tests/Perf/Benchmark/TimeBenchmark.php to tests/Perf/Benchmark/DurationBenchmark.phpHow can I help you explore Laravel packages today?