Luerl is an implementation of standard Lua 5.3 written in Erlang/OTP.
Lua is a powerful, efficient, lightweight, embeddable scripting language common in games, IoT devices, AI bots, machine learning and scientific computing research.
It supports procedural, object-oriented, functional, data-driven, reactive, organizational programming and data description.
Being an extension language, Lua has no notion of a “main” program: it works as a library embedded in a host simple called the embedding program. The host program can invoke functions to execute a piece of Lua code, can write and read Lua variables, and can call Erlang functions by Lua code.
Through the use of Erlang functions, Luerl can be augmented to cope with a wide range of different domains, creating a customized language sharing a syntactical framework.
Luerl is implemented as a library, written in clean Erlang/OTP. For more information, read the documentation and follow the get started tutorial. You may also browse the examples and learn from the luerl_demo source code
I have experimented with writing a simple repl similar o the one that comes with Lua which would allow you to evaluate Lua directly. It has not been released yet, but maybe one day.
Currently using it for a plugin system. Quite useful, especially when it comes to isolating effects of plugins on the system as a whole and on each other.
I’d like to join the list of people thanking @rvirding for luerl.
Currently testing luerl as a scripting language for industrial IoT digital device twins event driven applications.
We are investigating its scalability handling a large number of instances on smart metering applications; it works well and it’s pretty robust, though debugging crashing luerl scripts is not straighforward.
I’ve found it useful to preload a utility tables with helpers. I’ve exposed the logger with a term formatter and it makes debugging by print much smoother