lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hello everybody,

Rembulan is an implementation of Lua 5.3 for the Java Virtual Machine (JVM), written in pure Java with minimal dependencies.

The project lives on GitHub:

  https://github.com/mjanicek/rembulan

The goal of the project is to develop a correct, complete and scalable Lua implementation for running sandboxed Lua programs on the JVM.

Rembulan implements Lua 5.3 as specified by the Lua Reference Manual, explicitly attempting to mimic the behaviour of PUC-Lua whenever possible. This includes language-level features (such as metamethods and coroutines) and the standard library. It also includes a standalone REPL that behaves similarly to the one bundled with PUC-Lua.

This is not a release yet, but I hope to get there soon. A significant part of the standard library is implemented, and the runtime library (i.e., the language implementation) is stabilised.

Even in an unreleased state, I believe the project may be of interest to the Lua community, especially those who wish to bridge the gap between the C-based Lua world and the JVM. There are, however, significant caveats that limit the practical usability of Rembulan at this point:

 * the standard library is not fully implemented
   yet[1], most significantly, there is no module library yet:
   it is not possible to load libraries from Lua in Rembulan
   (that must be done in Java);

 * no "transparent" Java interop — libraries must implement
   the Rembulan interface, there is no mechanism that would
   present a Lua perspective on Java classes.

[1] — there is a more detailed Completeness Table at https://github.com/mjanicek/rembulan/blob/master/doc/CompletenessTable.md

I hope to rectify the above points in a not too distant future, and would welcome any help, especially when it comes to making the Java interop appear idiomatic in Lua.

Comments, suggestions, or contributions are welcome!

  M.