technology from back to front

Open Source

We believe the open source model represents a powerful means of creating stable, secure code. As such it is a significant part of modern technical culture as well as having major benefits for both developers and the end users of the software.

Wherever practical, we release our code as open source for the benefit not only of the developer community and software users, but so as to benefit ourselves from the criticism and contributions of our peers as we build systems and products for our clients.

More than that, we assign copyright to the code we release jointly to the LShift developer who created the core code as well as to LShift. That way, our developers receive the recognition they deserve for their expertise and skills as well as being strongly motivated to produce the best work they are capable of, since it will be reviewed by their peers in the open source movement.

See our open source Github and Mercurial repositories, or learn more about the open source community.


Please note, many of the projects listed below are very old and are no longer actively supported.


Accent is a lightweight reliability layer for AMQP messaging within JVM languages. Developed by Ben Hood and Paul Jones.

Chicken-SDL and Chicken-Cairo

Chicken-SDL and Chicken-Cairo are libraries for Chicken Scheme that have bindings for the Simple Direct-media Layer and Cairo vector graphics respectively. Developed by Tony Garnock-Jones and Michael Bridgen.


CVSZilla is a combination of Perl and Java to integrate CVS, Bugzilla and CVSWeb or ViewCVS. It extends CVS to give rudimentary support to ‘change-sets’, or ‘transactions’, after a fashion – they are not precisely what most people refer to as change-sets, but they’re close enough for use here.

The core was originally written by Tony Garnock-Jones with Michael Ngarimu. It has recently been extensively rewritten by Matthew Sackman in order to introduce more features and is now largely in maintenance mode.


Diffa is an open source data analysis tool that automatically establishes data differences between two or more real-time systems.

The application was conceived and developed by Ben Hood and Paul Jones.

Erlang Jukebox

We run this Erlang Jukebox in our office – anyone can queue music up from any machine.

The application was written by Tony Garnock-Jones and contributions have also been made by Simon MacMullen.


Marek wrote this lightweight asynchronous WSGI server and comet framework..


Martin Eden has been working on FrameLog. More information on this blog post.


gAlan is an audio-processing tool for X windows and Win32. It allows you to build synthesisers, effects chains, mixers, sequencers, drum-machines etc. etc. in a modular fashion by linking together icons representing primitive audio-processing components. Developed by Tony Garnock-Jones.


Icing is a collection of components that, taken together, form a simple web-development framework. Icing is a set of Scheme libraries, built atop SISCweb and making use of SXML and SXpath, that support servlet development within a J2EE environment. Developed by Michael Bridgen and Tony Garnock-Jones.

JS/CORBA Adapter

The JS/CORBA Adapter, developed by Matthias Radestock, provides a mechanism for arbitrary Javascript objects to interact with each other transparently in a distributed Javascript system using CORBA.


mercurial-server makes access control to Mercurial repositories easy. Developed by Paul Crowley.


Pachuco is a self-hosting compiler for a dialect of the Lisp programming language (and it also has a lot in common with Scheme). It generates i386 or x86-64 assembly code directly, rather than compiling to another high-level language or virtual machine. The whole system is written in the Pachuco language, except for a minimal amount of C and Common Lisp code for bootstrapping. Developed by David Wragg.


Pyle is a WikiClone – an implementation of a program sharing general ideas with the original WikiWiki developed by Ward Cunningham. Developed by Tony Garnock-Jones.


RabbitMQ is an implementation of AMQP, the emerging standard for high performance enterprise messaging. LShift built our implementation in collaboration with CohesiveFT. Code was developed by a team including Tony Garnock-Jones, Matthew Sackman, David Ireland, Hubert Plociniczak, Ben Hood, Matthias Radestock and Simon MacMullen.

Rurple NG

Rurple NG is a tool for teaching programming to those who have never programmed before. It is very closely based on an existing tool, RUR-PLE, but in a brand new implementation with many improvements. Developed by Paul Crowley.


Timetracker is a Java application for recording time usage to a shared or personal database. Timetracker was developed at LShift by Michael Bridgen, Tony Garnock-Jones, and Paul Crowley and Hubert Plociniczak.

You can download either the binaries or the source of Timetracker.


Timezilla is a Java web application for linking data in Bugzilla with data in Timetracker. Developed by Lee Coomber


TrustFlow is a new “trust metric” algorithm, which uses human-generated information about trustworthiness in a human-sized community of a few hundred people to generate guesses about trustworthiness in an Internet-sized community of millions of people; this is useful in applications from search hit ranking to spam prevention. TrustFlow is unique among “attack resistant” trust metrics in that it can load information about who trusts who incrementally as needed; this makes it well suited for distributed use.

TrustFlow is under active development by Paul Crowley; the current module examines friendship relationships among the million-strong LiveJournal community, and has gained around eighty thousand visitors.


xxexpr was written by Tony Garnock-Jones. It takes SXML (Scheme S-expression representation of XML data) and converts it to XML 1.0 markup, with optional pretty-printing, etc.


Listed below are projects initiated by other parties that LShift staff have made contributions to:


Matthew Sackman contributed code to Bugzilla.


Matthias Radestock contributed to the Chiba project, a Java implementation of the W3C XForms standard.


Tony Garnock-Jones contributed the chickenlib, docscm and chicken-gtk2 libraries to the Chicken project, a compiler that translates programs written in Scheme into C.


Tony Garnock-Jones has contributed code to CVSspam, a CVS add-on for for emailing colour-diffed change notifications on all CVS commits.


Darcsum, an emacs mode for the Darcs revision control system. Matthias Radestock contributed to this project.


Matthias Radestock contributed to Distel, an Emacs-based user-interface toolkit for Erlang.


Michael Bridgen contributed to gcj, a Java compiler in the GNU compiler collection (gcc).


Marek contributed to HaProxy loadbalancer.


Matthias Radestock contributed to HaskellDB, a Haskell combinator library for expressing queries and other operations on relational databases in a type safe and declarative way.


Matthias Radestock contributed to HDBC, a database API for Haskell.


Matthias Radestock contributed to the Kawa project, a compiler/interpreter for the Scheme programming language, written entirely in Java.


Matthias Radestock contributed to the LAML project, a suite of libraries and tools that bring XML and HTML processing into the domain of the Scheme programming language.

Nmap port scanner

Marek Majkowski has made a number of contributions to the Nmap project during and since Google Summer of Code 2006. The contributions included performance enhances, a feature for selecting specific ip options and a raw packet interface for Nmap Scripting Engine.


Matthias Radestock contributed to the Rhino project, a compiler/interpreter for the JavaScript language written entirely in Java.


Matthias Radestock contributed to the Scheme48 project, a fully standards-compliant and very portable interpreter for the Scheme programming language.


Matthias Radestock contributed to the SISC project, an interpreter for the Scheme programming language, written entirely in Java.


Tony Garnock-Jones contributed POSIX directory-access code to the Slate project, a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk.


SLMC is a Spatial Logic Model Checker for behavioural and structural analysis of concurrent programs. Matthias Radestock has recently contributed to this project.


Tony Garnock-Jones and Michael Bridgen contributed code to SML.NET, a Standard ML compiler that targets the .NET runtime.


Matthias Radestock contributed to the SSAX project, an XML parsing framework for Scheme.


Tony Garnock-Jones has contributed to Squeak, an open-source, highly portable, fast and full-featured implementation of the powerful Smalltalk programming language and environment.


Matthias Radestock contributed to the ViewMTN project, a web interface to the Monotone distributed version control system.

2000-14 LShift Ltd, 1st Floor, Hoxton Point, 6 Rufus Street, London, N1 6PE, UK+44 (0)20 7729 7060   Contact us