DNode RPC protocol implementation for PHP
PHP JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 60 commits behind bergie:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


DNode protocol for PHP

This project implements the DNode remote procedure call protocol for PHP. The intent is to enable PHP scripts to act as part of a distributed Node.js cloud, allowing Node to call PHP code, and PHP to call Node code.

You can read more about DNode and PHP in the introductory blog post.


dnode-php can be installed using the Composer tool. You can either add dnode/dnode to your package dependencies, or if you want to install dnode-php as standalone, go to the main directory of this package and run:

$ wget http://getcomposer.org/composer.phar 
$ php composer.phar install

You can then use the composer-generated autoloader to access the DNode classes:

require 'vendor/.composer/autoload.php';

Running the examples

After installing, you can run the DNode examples located in the examples directory. Each example contains both a client and a server.

For example:

$ php examples/simple/server.php
$ php examples/simple/client.php 
n = 3300

The examples have been written to be compatible with the DNode examples, meaning that you can use any combination of PHP-to-PHP, Node-to-Node, PHP-to-Node, or Node-to-PHP as you wish.

$ node simple/client.js 
n = 3300

Current limitations

  • Only regular, non-encrypted TCP sockets are supported
  • Only one simultaneous connection supported


Surprisingly, with simple calls PHP is faster as a DNode client than Node.js. Talking to the simple example DNode server from the dnode repository:

$ time php examples/simple/client.php 
n = 3300

real	0m0.067s
user	0m0.030s
sys	0m0.030s

The same with a Node.js client:

$ time node simple/client.js 
n = 3300

real	0m0.173s
user	0m0.140s
sys	0m0.030s


dnode-php is under heavy development. If you want to participate, please send pull requests.