This is a modified version of the Luvi Lua runtime, primarily with the goal of iterating on various ideas and experimentating in an isolated environment.
The runtime is built to serve my own needs first and foremost, which may or may not be of interest to anyone else. It's a work-in-progress and likely never finished.
If you aren't familiar: Luvi provides a Lua environment based on the LuaJIT compiler, with builtin C libraries like libuv, OpenSSL and miniz. Luvi also includes facilities to create self-contained executables from your Lua scripts and serves as a foundation for the luvit runtime, which are inherited by this variant.
For more information, see the Luvi README
Not all sections still apply to this fork, but the foundations are the same.
Evo (formerly evo-luvi) differs in various ways from the original luvi runtime.
Here are the high-level differences (list is not exhaustive):
import
mechanism to load Lua modules by relative paths or from within a .evo
module folder, using GitHub-style package organization (@owner/packageName
syntax similar to npm scopes)Whether these and other changes are good ideas, only time will tell :)
Evo is fully compatible with:
It is generally incompatible with:
The primary platforms I am officially supporting are those I actively use:
Things should still work on other platforms, if supported by all dependencies, but YMMV and there may be unforeseen issues (aren't there always?).
The documentation website (work in progress) can be found here:
If something's outdated, wrong, or missing, please open an issue here!
See License.txt - it's Apache 2.0 (as inherited from Luvi).
Third-party dependencies may have differing (compatible) licenses.