phpinnacle / buffer
PHPinnacle binary buffer implementation
Installs: 72 565
Dependents: 10
Suggesters: 0
Security: 0
Stars: 24
Watchers: 2
Forks: 2
Open Issues: 1
Requires
- php: >=7.3
Requires (Dev)
- phpunit/phpunit: ^9.0
Suggests
- ext-buffer: C extension to speed up pack/unpack binary data
README
PHPinnacle Buffer is a simple tool for operating binary data in PHP. Mostly it simply wraps PHP pack/unpack functions.
Install
Via Composer
$ composer require phpinnacle/buffer
Basic Usage
<?php use PHPinnacle\Buffer\ByteBuffer; // AMQP protocol header $buffer = new ByteBuffer; $buffer ->append('AMQP') ->appendUint8(0) ->appendUint8(0) ->appendUint8(9) ->appendUint8(1) ;
Testing
$ composer test
Benchmarks
$ 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 |
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email dev@phpinnacle.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.