The xPL Project is a community driven effort, therefore most of our tools are released under the GPL or LGPL. In most cases, commercial use of components and source code is okay, however you should check the details of each tool that you wish to use.

We have development tools for the following platforms:


Windows C++ SDK

Freeware C++ Software Development Kit to aid the creation of xPL-enabled applications and services for Windows. Includes full source code and documentation. The SDK can be downloaded from the xPLMonkey website.

.NET Framework DLL

If you are developing applications in the Microsoft .NET environment, then the XPL Library for .NET allows you to add XPL functionality to your application in a matter of minutes.

The library contains strong support for all the xPL nuts and bolts (heartbeats, configuration, fragmentation, etc.) encapsulated in an easy API that is well documented using the Visual Studio documentation tools (IntelliSense and xml commenst).

The .NET Library is maintained by Thijs Schreijer.

ActiveX for VB or Delphi

Tony Tofts wrote an ActiveX Control to enable Visual Basic or Delphi programmers to easily add xPL functionality to their applications.

This control is now maintained by Ian Lowe and can be downloaded from this wiki. More details can be found Here

Java/Multi-platform Environment

xPL4Java - xPL4Java is a full xPL implementation for Java. It supports easy creation of xPL "devices", reading/parsing/sending of xPL messages, lots of help to hide most of the details of dealing with the xPL protocol, but easy access to the lowest-level stuff if you want it.

xPL4Java includes complete support for the xPL configuration protocol, a vendor plugin file reader to help read information on how to control other xPL devices, a device tracker service that allows you to easily enumerate and collect information on all xPL devices on the network, full source code, fully documented Javadocs for the API and a number of examples showing simple and more complex uses of the API.

In addition to being an xPL framework, xPL4Java offers a server environment for xPL4Java based modules (or plugins) to live in. This allows multiple xPL4Java applications, device drivers and services to share a common JVM instance on a computer. Full management of the modules and dynamic automatic installation of new modules are just a few of the features available.

XPE XPE is the "xPL Plugin Editor" -- a tool designed to help create vendor plugin files for your xPL enabled devices. Plugin files allow user applications (like xPLHAL and DCM) to "learn" about new xPL devices and lets the user application offer meaningful commands in plain english. XPE helps you create these files and insures the resultant files are compliant with the Vendor Plugin file spec.

XPE is written in Java and should run on any platform with a Java 1.5 or later install.

Linux C++ Framework

Linux/Unix C (non++) Framework

xPLLib - xPLLib is a C library that should compile on most unix-like systems (linux, Solaris, MacOSX, etc) that provides a complete implementation of the xPL protocol. It allows you to keep a high level view of the xPL network with xPLLib doing most of the grunt work or lets you dive down as close to the wire as you need to get. xPLLib includes full support for the xPL configuration protocol, making it easy to create remotely configurable xPL devices and applications.

xPLLib is frugal with memory use and tested extensively for memory leaks (none found yet). xPLLibs API has been designed to make integrating xPLLib into an existing application as easy as possible. There are at least three different ways you can integarte xPL into the "main loop" of your code (it works very well with more event driven apps too) -- pick the way that is most natural. Of course, it's also very easy to create brand new apps with xPL Lib.

xPLLib comes with all source code, documentation (not thorough yet, but growing) and example programs showing how to use the features available in xPLLib.

xPL Toolkits for Perl

This xPL ToolKit for Perl provides you with the core building blocks needed to create an xPL environment entirely using Perl, including an xPL Hub, a monitor, and a sender which can run either as a command-line tool, or as a CGI script on a web server.

Mark Hindess has also developed a xPL Perl API intended to run on Linux platforms. A Debian installer package is available for download and provides an extensive set of tools for developing xPL applications in Perl. This system has been successfully installed on Mac OS X.

xPL Toolkit for Python

The xPL Toolkit for Python is a collection of utilities designed to help developers write xPL-enabled applications using the Python programming language


Various tools for sending, logging and monitoring xPL messages can be found on the xPL Applications page.

Platform Specific arrangements

For some platforms there are specific agreements for shared settings etc. If you intend to develop, please take notice and try to stay aligned. The details can be found on the Platform Specifics page


This page was last modified on 19 August 2011, at 20:17. This page has been accessed 30,103 times.