ConcurrentLua logo

ConcurrentLua

Concurrency Oriented Programming in Lua

Overview

ConcurrentLua is a system that implements Erlang-style concurrency for the Lua programming language. It is a system that brings an alternative to what scripting languages offer for concurrent and distributed programming.

Erlang is regarded as the reference language for concurrent and distributed programming using the message-passing model. Erlang was designed with concurrency oriented programming in mind and has built-in facilities to support this model.

ConcurrentLua is based on the Lua model for concurrency, namely coroutines, and extends this model by providing message-passing primitives. Distributed programming is supported transparently with the same message-passing primitives.

ConcurrentLua is implemented as a collection of Lua modules that can be loaded by any Lua program. Most of the code is written in Lua itself, with minor parts written in C.

The system was originally designed and implemented as part of my MSc Thesis at the Royal Institute of Technology (KTH). At this point it can be considered a working prototype, nevertheless it is a complete solution and it was implemented so as to be further extended in the future, if found useful by the community.

Download

The current version is 1.0.3, released on 23 May 2009.

ConcurrentLua can be downloaded from its LuaForge project page.

Installation

ConcurrentLua depends only on the LuaSocket and Copas modules.

ConcurrentLua uses the new package system for Lua 5.1.

ConcurrentLua is supplied with a Makefile that can be used to build and install it.

Contact

Lefteris Chatzimparmpas <lefcha@hellug.gr>

License

This program is released under the same terms and conditions as the Lua language, the MIT/X11 license.