Skip to content
jsnyder edited this page Sep 30, 2010 · 3 revisions

What is eLua ?

eLua stands for Embedded Lua and the project aims to offer the full implementation of the Lua Programming Language to the embedded world.

eLua is not a stripped down set of a language to fit in the embedded environment. Much on the contrary, it strives to offer the same features as the desktop version of Lua, complementing them with specific features for embedded use and discarding the need of an operating system running on the microcontrollers. eLua runs on "bare metal" and, besides offering different flavors of the full Lua implementation (like the possibility of choosing between an integer-only and a floating point numbers implementation), a lot of work was and will be done in the direction of making Lua more "embedded-friendly" by augmenting the core language with features that allow lower memory requirements and faster embedded performance (ROM-living Lua tables and functions are examples of this).

Why Lua? Extremely well crafted, 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 and web services (ex: Adobe Lightroom, World of Warcraft, …​). Its limited resource requirements make it suitable to a lot of microcontroller families. The intrinsic high portability of the original Lua code (which is ANSI C and runs virtually on every platform), combined with the highly portable software architecture of eLua, allow for easy porting of the project to a large variety of architectures. The peripheral access libraries and modules exported by eLua are also portable by design, so one could run a Lua program (without or with very few modifications) on every eLua supported platform. This brings an unprecedented level of portability to the embedded applications world. eLua inherits the minimalist and functional design of Lua, staying in line with the well known KISS, Keep It Small and Simple philosophy.

Audience

eLua has a wide and varied audience, starting from newcomers to the embedded world who want an easy and powerful environment for prototyping, rapid application development and quick production, and ranging towards highly skilled developers that want to extend their programs with the Lua library facilities and portable features.

eLua allows embedded-oriented programmers to use the simplicity and power of the Lua programming language and to hide the low-level complexities and platform- and architecture-dependent features. With eLua, the programmer can focus on the actual implementation of his program, without having to worry about accessing the low-level peripheral configuration and data registers, as the platform libraries already take care of this. This increases productivity and eliminates the often frustrating task of dealing with platform-specific drivers.

The list below summarizes eLua’s target audience:

  • Embedded developers that are looking for a fast, easy to use and powerful way of coding.

  • First-time embedded programmers (or simply first time programmers) who are looking for an easy way to "dive" into the embedded programming world. eLua is a great learning tool.

  • People who aren’t really developers, but still want to be able to prototype an embedded system fast and painless, without having to learn C for that.

  • Embedded developers who need powerful meta-language mechanisms for complex code algorithms and data description.

  • Field engineers who can provide their customers with on-site debugging of an eLua module or full application, without any preparation at all, since the whole development environment already resides on the chip.

  • Final clients and decision makers, who benefit from the fact that eLua conceptually transforms hardware into commodities. In systems using eLua, replacing field sensor and actuator controllers with different models, brands and even architectures have no impact on the main application software.

License

eLua is Open Source and is freely distributed under the MIT license (the same of Lua)

Community

eLua discussion list

If you have comments or questions about the project, feel free to join us on our mailing list. If you prefer, this list is also accessible as a forum at Nabble.

eLua IRC Channel

You can also drop by our IRC channel on irc.freenode.net IRC[#elua].

Log: IRC Logs

eLua project site

The eLua project main site is www.eluaproject.net

Clone this wiki locally