igbinary

igbinary extension


Igbinary is a drop in replacement for the standard php serializer. Instead of
time and space consuming textual representation, igbinary stores php data
structures in a compact binary form. Savings are significant when using
memcached or similar memory based storages for serialized data.

License: BSD-3-Clause

Latest releases

Version Release Download
3.2.2RC1 2021-01-12 igbinary-3.2.2RC1.tgz
3.2.1 2020-12-27 igbinary-3.2.1.tgz
3.2.0 2020-12-26 igbinary-3.2.0.tgz
3.1.6 2020-10-08 igbinary-3.1.6.tgz
3.1.6RC1 2020-10-07 igbinary-3.1.6RC1.tgz
Show all releases

Changelog

Version Message
3.2.2RC1 * Update php version check to allow igbinary to be statically built in PHP 8.0+
* Fix bug in out of memory error handling in __sleep, slightly speed up serializing with __sleep.
* Continue serializing remaining properties if a missing property name is returned from __sleep.
* Speed up serializing by optimizing for the case where there is no memory manager override.
When there is a memory manager override, only use that for allocating the string to return.
(benchmarks/serialize-scalar-int.b.php showed a speedup from 0.22 to 0.18 seconds for repeated serialization of a single scalar,
and from 0.186 to 0.180 seconds for benchmarks/serialize-stringarray.b.php for an array of strings)
* Speed up unserializing arrays in php 7.2-8.0 by adding optimized code for finding the hash bucket of
a string/integer key of an array, or creating a placeholder if it does not already exist.
3.2.1 * Fix crash when unserializing if __serialize was defined but __unserialize was undefined in php 8.0+ (due to typo).
3.2.0 * Use PHP's shared empty array instance when unserializing empty arrays in php 7.3+.
(helps slightly with memory usage when repeatedly unserializing,
when removing elements from arrays before unserializing them,
or when serializing values including an empty array that was unserialized)
* Emit a deprecation notice when serializing resources.
PHP itself is converting many resources to objects that throw an Error on serialization attempts.
Continue to represent resources as null in the serialized data.
* Fix memory management bug when unserializing invalid data (duplicate properties in objects (e.g. from `__sleep`) or duplicate fields in arrays (impossible for valid data)).
* Speed up calls to `__serialize`/`__unserialize` in php 8.0+.
* Fix error messages for unserialize_callback_func: make messages properly refer to the autoload function.
* Optimize unserializing alternative names for private/protected constants that were previously public.
3.1.6 * Fix build failure with older C standard (e.g. building on CentOS 6).
* Otherwise, identical to 3.1.6RC1.
3.1.6RC1 * Fix igbinary_serialize incorrectly deduplicating arrays/objects/references when they were garbage collected/freed during serialization.
Show complete changelog