Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

msgpack/msgpack-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

407 Commits

Repository files navigation

Msgpack for PHP

Build Status

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;
}

Resources

About

msgpack.org[PHP]

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 28

Languages

AltStyle によって変換されたページ (->オリジナル) /