This project is not covered by Drupal’s security advisory policy.

A transport layer for Drupal-to-Drupal data, which aims to provide a common base on which to build services-based applications between Drupal sites.

In (reasonably) plain English:

  • with Services, you can make XMLRPC calls to a remote Drupal site and get back data, provided you first connect, log in, and pass keys and hashes and tokens and so on in ever call.
  • with Clients, you can just make a remote method call of, say, 'node.load' with a parameter of X and get back data, much like calling a normal function; all the complex stuff with Services is done for you.
  • with Transport, you need only say 'get me node X from Client Y', and you not only get the node, but the user who authored it, its attached files, taxonomy terms, and comments (well the last two are TODO, but that's a minor point). Transport does the work of calling the right methods, figuring out dependencies, saving everything it retrieves, and maintaining a record of correspondences between local and remote object IDs. Transport can work with multiple remote sites, and is agnostic of Drupal version: Transport on a Drupal 6 site can retrieve nodes from either a Drupal 5 or 6 site.

The idea is thus that modules can rely on Transport to do the work of retrieving data, which they can initiate in batch processes, cron runs, queues, on the fly, or whatever suits their purpose. It's up to application-layer modules to figure out what to retrieve; Transport is the workhorse that retrieves it.

Modules using Transport

  • Content push provides a simple UI for distributing a node to a remote site when it is created or updated
  • UpRPC is a framework for migrating data from Drupal 5 to Drupal 6

Status

Transport is incomplete (hence in alpha) but what is there is stable and several sites are using it with Content push module, or have migrated content from Drupal 5 to 6 with UpRPC.

Still to do: comments and input formats.

Requirements and stack

Transport needs the following packages:

On the retrieving site, that is, where content is saved:

On the distributing site, that is, where content comes from:

More details are in the README file; the code is extensively documented; a demo module is also included.

Project information

Releases