A pure Java implementation of Lua 5.3 for the JVM, designed for sandboxed scripting and embedding.
Rembulan is an implementation of the Lua 5.3 programming language that runs on the Java Virtual Machine. It allows developers to embed Lua as a scripting language within Java applications, with a strong focus on sandboxing untrusted code. The project compiles Lua source directly to Java bytecode and provides a standalone REPL that mimics the standard Lua interpreter.
Java developers who need to embed a secure, sandboxed scripting language into their applications, or those requiring a Lua environment on the JVM for running untrusted scripts.
Rembulan offers a pure Java, dependency-light implementation of Lua 5.3 with built-in sandboxing capabilities, making it ideal for secure scripting scenarios where running untrusted code is a requirement.
Rembulan, an implementation of Lua 5.3 for the Java Virtual Machine
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements the language as specified by the Lua Reference Manual, aiming to mimic PUC-Lua behavior including metamethods and coroutines, ensuring compatibility for scripting needs.
Designed explicitly for running untrusted Lua programs with features like CPU accounting and operation limits, as shown in the infinite loop example with CallPausedException.
Built with minimal dependencies, requiring only JRE 7 or higher and avoiding native code, making it portable and easy to integrate into Java ecosystems.
Compiles Lua source directly to Java bytecode using static type inference, rather than interpreting Lua bytecode, which can lead to better performance on the JVM.
The completeness table indicates that not all standard library functions are fully implemented, which may break compatibility with some Lua scripts or libraries.
Requires libraries to be written against its Java interface, limiting portability from existing Lua ecosystems and forcing custom adaptations for native integrations.
Only SNAPSHOT versions are available with no stable releases, and building requires Maven and JDK 7+, adding friction for production use and long-term stability.