What is eLua ?

eLua stands for Embedded Lua and the project aims to offer the full set of features of the Lua Programming Language to the embedded world.
eLua
is not a striped down sub-sub-set of a language, much on the contrary. Besides offering different flavors  of full Lua implementations (ie: integer or fp numbers, ...), eLua extends Lua with some neat types for the embedded world (ie: light tables, light functions, ...), to allow them to be romable and the aplications to exploit better the balance ROM/RAM of the current MCUs.

Lua is the perfect example of a minimal, yet fully functional language. Although generally advertised as a "scripting language" (and used accordingly especially in the game industry), it is also fully capable of running stand-alone programs. Its limited resource requirements make it suitable to a lot of microcontroller families. Lua's incredible portability (Lua code is ANSI C and runs virtually in every known platform) and eLua's roadmap for supporting the most used MCUs on the market, opens to the embedded world a new degree of "portability". Write your program in Lua and run it, without or with very few modifications, on every eLua supported platform, even with different architectures!

The aim of the project is to have a fully functional Lua development environment on the microcontroller itself, without the need to install a specific development environment on the PC side. Initially, a PC will still be needed in order to edit the Lua programs for the microcontroller. But as the project evolves this requirement will be relaxed, as a basic editor (also residing on the microcontroller) will be usable with a variety of input/output devices.





Audience

eLua has a wide and varied audience, from highly skilled developers that want to extend their programs with the Lua library facilities and portable features, to the newcomer to the embedded world, who wants an easy and powerfull environment for prototyping, rapid application development, educational or final product quick production.

eLua allows new embedded world programmers to use the simplicity and powerfullness of the Lua programming language, to hide low-level complexities and platform/architecture-dependent features. A whole new class of embedded programmers, with no deep knowledge of the peripheral details but with powerfull aplications in mind is now possible. Modern designers and multimedia artists are already an example of this "class".

On the other edge of the category, oldtime and skilled embedded developers can create complex and abstract modules, offering a degree of portability to the final user never dreamed before on the embedded world.

eLua audience would be among the following categories:

Authors

eLua is a joint project of Bogdan Marinescu, a software developer from Bucharest (Romania) and Dado Sutter, head of the Led Lab at PUC-Rio University, in Rio de Janeiro (Brazil).

Its origins come from the ReVaLuaTe project also developed by Bogdan Marinescu (as a contest entry for the 2005 Renesas M16CDesign Contest), and the Volta Project, managed by Dado Sutter at PUC-Rio from 2005 to 2007.

eLua is an Open Source and collaborative project and an always growing list of collaborators can be found in our Credits Page


ReVaLuaTe ProjectVolta Project
ReVaLuaTe project pictureVolta project picture




Contacts

eLua authors can be contacted at:

Bogdan Marinescu: bogdan dot marinescu at gmail dot com

Dado Sutter: dadosutter at gmail dot com

 
   You are also welcome to share your questions and suggestions on our Mail Discussion List

License

eLua is Open Source and is freely distributed under the GPL (migrating to BSD soon) licence.

The Lua code (with slight modifications) is included in the source tree and is, of course, licensed under the same MIT license that Lua uses.

The terms of each of these licences can be viewed on their own pages at:

GPL Licence

BSD Licence

MIT Licence