PHPinnacle Ambit is a simple library for operating binary data in PHP. Mostly it simply wraps PHP pack/unpack functions.
Via Composer
$ composer require phpinnacle/ambit
<?php
use PHPinnacle\Ambit\BinaryWriter;
// AMQP protocol header
$writer = BinaryWriter::bigEndian();
$writer
->string('AMQP')
->uint8(0)
->uint8(0)
->uint8(9)
->uint8(1)
;
$ composer test
$ composer bench
Some results with pure PHP realisation:
Benchmark | Best (μs) | Mean (μs) | Mode (μs) | Worst (μs) |
---|---|---|---|---|
appendIntegers | 11.605 | 12.115 | 12.047 | 12.888 |
appendFloats | 10.464 | 10.913 | 10.786 | 17.943 |
appendString | 8.857 | 41.021 | 20.611 | 362.174 |
consume | 48.916 | 50.721 | 50.399 | 61.542 |
read | 26.617 | 27.665 | 27.500 | 31.744 |
And results with enabled extension:
Benchmark | Best (μs) | Mean (μs) | Mode (μs) | Worst (μs) |
---|---|---|---|---|
appendIntegers | 2.522 | 2.657 | 2.625 | 3.031 |
appendFloats | 1.987 | 2.136 | 2.095 | 3.307 |
appendString | 3.692 | 3.854 | 3.806 | 5.695 |
consume | 13.701 | 14.654 | 14.454 | 17.977 |
read | 5.128 | 5.425 | 5.313 | 6.625 |
Please see CONTRIBUTING and CONDUCT for details.
If you discover any security related issues, please email dev@phpinnacle.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.