Skip to main content

Convert PHP serializer strings to JSON

Project description

Build status

A small library that aims to provide a fast way of decoding PHP serialization format. Use it if you need to migrate large amount of PHP data and performance is essential.

The library provides only one function:

>>> import php2json
>>> php2json.php2json(b's:3:"foo";')
b'"foo"'

It’s goal is to convert PHP serializer string into JSON string as fast as possible. The assumption is that JSON decoders (such as standard json module or ujson) are much better optimized than phpserialize.

Here’s a simple benchmark where I pit phpserialize against php2json combined with ujson and json:

phpserialize: 6.60s
php2json+ujson: 0.15s
php2json+json: 0.19s
speedup (ujson): 4337%
speedup (json): 3485%

Installation

Install with:

pip install php2json

Tests

Run test with:

pip install tox
make clean
tox .

Benchmark

Run benchmark with:

pip install -r requirements-test.txt
make bench

Limitations

Few limitations apply:

  • only deserialization is possible
  • PHP objects are not supported
  • behaviour is undefined in presence of unicode strings
  • input data must adhere to JSON standards, most notably: array keys must be strings or values easily convertible to strings (such as integers)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
php2json-0.2-cp27-cp27mu-manylinux1_x86_64.whl (33.1 kB) Copy SHA256 hash SHA256 Wheel cp27 Oct 17, 2017
php2json-0.2-cp36-cp36m-manylinux1_x86_64.whl (35.4 kB) Copy SHA256 hash SHA256 Wheel cp36 Oct 17, 2017
php2json-0.2.tar.gz (3.8 kB) Copy SHA256 hash SHA256 Source None Oct 17, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page