msgpack / msgpack-php
MessagePack serialization API
Installs: 0
Dependents: 0
Suggesters: 2
Security: 0
Stars: 785
Watchers: 64
Forks: 120
Open Issues: 18
Type:php-ext
Ext name:ext-msgpack
Requires
- php: >= 7.0.0
This package is not auto-updated.
Last update: 2025-08-27 10:31:01 UTC
README
This extension provides an API for communicating with MessagePack serialization.
MessagePack is a binary-based efficient object serialization library. It enables to exchange structured objects between many languages just like JSON. But unlike JSON, it is very fast and small.
Requirement
- PHP 7.0 +
Install
Install from PECL
Msgpack is a PECL extension, thus you can simply install it by:
pecl install msgpack
Compile Msgpack from source
/path/to/phpize
./configure --with-php-config=/path/to/php-config
make && make install
Example
<?php $data = array(0 => 1, 1 => 2, 2 => 3); $msg = msgpack_pack($data); $data = msgpack_unpack($msg);
Advanced Example
<?php $data = array(0 => 1, 1 => 2, 2 => 3); $packer = new \MessagePack(false); // ^ same as $packer->setOption(\MessagePack::OPT_PHPONLY, false); $packed = $packer->pack($data); $unpacker = new \MessagePackUnpacker(false); // ^ same as $unpacker->setOption(\MessagePack::OPT_PHPONLY, false); $unpacker->feed($packed); $unpacker->execute(); $unpacked = $unpacker->data(); $unpacker->reset();
Advanced Streaming Example
<?php $data1 = array(0 => 1, 1 => 2, 2 => 3); $data2 = array("a" => 1, "b" => 2, "c" => 3); $packer = new \MessagePack(false); $packed1 = $packer->pack($data1); $packed2 = $packer->pack($data2); $unpacker = new \MessagePackUnpacker(false); $buffer = ""; $nread = 0; //Simulating streaming data :) $buffer .= $packed1; $buffer .= $packed2; while(true) { if($unpacker->execute($buffer, $nread)) { $msg = $unpacker->data(); var_dump($msg); $unpacker->reset(); $buffer = substr($buffer, $nread); $nread = 0; if(!empty($buffer)) { continue; } } break; }