PHPackages                             fxmlrpc/serialization - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. fxmlrpc/serialization

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

fxmlrpc/serialization
=====================

Serialization logic for FXMLRPC

0.2.0(8y ago)0182[1 issues](https://github.com/fxmlrpc/serialization/issues)MITPHPPHP ^5.6 || ^7.0

Since May 26Pushed 8y ago2 watchersCompare

[ Source](https://github.com/fxmlrpc/serialization)[ Packagist](https://packagist.org/packages/fxmlrpc/serialization)[ Docs](http://fxmlrpc.org)[ RSS](/packages/fxmlrpc-serialization/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (8)Versions (4)Used By (0)

FXMLRPC Serialization
=====================

[](#fxmlrpc-serialization)

[![Latest Version](https://camo.githubusercontent.com/4330a88b274f0d4c7485bb34e4ea7f57c8ba238fc035c7f52122dac9d5186e41/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f66786d6c7270632f73657269616c697a6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://github.com/fxmlrpc/serialization/releases)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Build Status](https://camo.githubusercontent.com/77d7fc65e2e14e4afe2f5a3e28d5e77303cfb858d67ce098181842e57e72cc96/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f66786d6c7270632f73657269616c697a6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/fxmlrpc/serialization)[![Code Coverage](https://camo.githubusercontent.com/928984b80e173f85e2bd6351b6ac3473b8e1d49179856898aa75ca959c841cdc/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f66786d6c7270632f73657269616c697a6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/fxmlrpc/serialization)[![Quality Score](https://camo.githubusercontent.com/98034c1477bc0f21fcb0d194fc6eda9e9e13478d9f09b81f358bf1314def1252/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f66786d6c7270632f73657269616c697a6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/fxmlrpc/serialization)[![Total Downloads](https://camo.githubusercontent.com/3f6862fe44c7b6cb7dde41ca785f71f06030ff13ed8de5d9809594da8431413b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f66786d6c7270632f73657269616c697a6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fxmlrpc/serialization)

**Serialization logic for FXMLRPC.**

Install
-------

[](#install)

Via Composer

```
$ composer require fxmlrpc/serialization
```

Usage
-----

[](#usage)

This is the contract package for serialization logic used in FXMLRPC.

Currently the following implementations are available:

- Native: Uses XML-RPC extension
- XML Reader: Custom XML reading logic utilizing bitmasks
- Zend Framework Adapter

How fast is it really?
----------------------

[](#how-fast-is-it-really)

IO performance is out of reach from a userspace perspective, but parsing and serialization speed is what matters. How fast can we generate the XML payload from PHP data structures and how fast can we parse the servers response? FXMLRPC uses stream based XML writers/readers to achieve it’s performance and heavily optimizes (read uglifies) for it. As a result the userland version is only around 2x slower than the native C implementation (ext/xmlrpc).

```
8 subjects, 80 iterations, 320 revs, 0 rejects
min mean max: 11,497.750 118,279.634 339,007.500 (μs/r)
⅀T: 37,849,483.000μs μSD/r 5,275.433μs μRSD/r: 6.047%

+-----------------+-----------------------+-------+------+-----+-------------+----------------+----------------+----------------+---------------+--------+
| benchmark       | subject               | group | revs | its | mem         | min            | mean           | max            | stdev         | rstdev |
+-----------------+-----------------------+-------+------+-----+-------------+----------------+----------------+----------------+---------------+--------+
| ParserBench     | benchNativeParser     |       | 40   | 10  | 15,644,120b | 118,311.2500μs | 123,752.2250μs | 127,034.7500μs | 2,196.4803μs  | 1.77%  |
| ParserBench     | benchSaxParser        |       | 40   | 10  | 15,594,984b | 144,438.0000μs | 149,607.9000μs | 157,309.2500μs | 3,892.3376μs  | 2.60%  |
| ParserBench     | benchZendParser       |       | 40   | 10  | 56,321,216b | 278,974.5000μs | 287,957.9750μs | 317,007.5000μs | 10,655.0098μs | 3.70%  |
| SerializerBench | benchNativeSerializer |       | 40   | 10  | 12,420,416b | 11,497.7500μs  | 12,464.6500μs  | 15,255.5000μs  | 1,416.8554μs  | 11.37% |
| SerializerBench | benchSaxSerializer    |       | 40   | 10  | 15,460,152b | 22,643.2500μs  | 24,231.8250μs  | 26,539.7500μs  | 1,411.6560μs  | 5.83%  |
| SerializerBench | benchZendSerializer   |       | 40   | 10  | 15,671,376b | 21,832.5000μs  | 24,071.2500μs  | 28,176.2500μs  | 1,948.6380μs  | 8.10%  |
+-----------------+-----------------------+-------+------+-----+-------------+----------------+----------------+----------------+---------------+--------+

```

Run `./vendor/bin/phpbench run --report=custom` to execute the benchmarking test suite.

Zend Incompatibility list
-------------------------

[](#zend-incompatibility-list)

Zend is not fully compatible with the rest of the serializers and parsers.

### Parser incompatibility

[](#parser-incompatibility)

- Automatically decodes Base64 encoded values
- Does not return DateTime objects
- Cannot return empty DateTime values
- Does not support Apache Nil
- Incorrectly detects invalid multiple parameters
- Cannot parse response containing an [XXE Attack](https://en.wikipedia.org/wiki/XML_external_entity_attack)

### Serializer incompatibility

[](#serializer-incompatibility)

- If no params are passed, no empty params tag is generated
- Unlike the xmlrpc extension, Zend does not add [newlines](http://php.net/manual/en/function.xmlrpc-encode-request.php#27992)

Testing
-------

[](#testing)

```
$ composer test
```

Security
--------

[](#security)

If you discover any security related issues, please contact us at .

Credits
-------

[](#credits)

- [Lars Strojny](https://github.com/lstrojny)
- [Márk Sági-Kazár](https://github.com/sagikazarmark)
- [All Contributors](https://github.com/fxmlrpc/serialization/contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

3018d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0e4e105cea62b616d4cb376b08a849b6a428f646998537de150d16a8eb537b90?d=identicon)[mark.sagikazar](/maintainers/mark.sagikazar)

![](https://avatars.githubusercontent.com/u/79707?v=4)[Lars Strojny](/maintainers/lstrojny)[@lstrojny](https://github.com/lstrojny)

![](https://www.gravatar.com/avatar/369f0d07093146ef86eeef5b14e360c75c3c9f627312e6434685371fd603d502?d=identicon)[fxmlrpc](/maintainers/fxmlrpc)

---

Top Contributors

[![sagikazarmark](https://avatars.githubusercontent.com/u/1226384?v=4)](https://github.com/sagikazarmark "sagikazarmark (72 commits)")[![lstrojny](https://avatars.githubusercontent.com/u/79707?v=4)](https://github.com/lstrojny "lstrojny (1 commits)")

---

Tags

xmlrpcserializationxmlrpc

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/fxmlrpc-serialization/health.svg)

```
[![Health](https://phpackages.com/badges/fxmlrpc-serialization/health.svg)](https://phpackages.com/packages/fxmlrpc-serialization)
```

###  Alternatives

[jms/serializer

Library for (de-)serializing data of any complexity; supports XML, and JSON.

2.3k135.8M851](/packages/jms-serializer)[jms/serializer-bundle

Allows you to easily serialize, and deserialize data of any complexity

1.8k89.3M627](/packages/jms-serializer-bundle)[darkaonline/ripcord

RPC client and server around PHP's xmlrpc library

35897.7k9](/packages/darkaonline-ripcord)[robroypt/odoo-client

A PHP Client for Odoo using Ripcord RPC library (as used in Odoo Web API docs)

2149.4k](/packages/robroypt-odoo-client)[gamenet/php-jabber-rpc

PHP wrapper for ejabberd xml-rpc module

1921.0k](/packages/gamenet-php-jabber-rpc)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
