lua-users home
lua-l archive

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


Hello everybody!

Recently I've been dabbling with Lua. It started as mostly tinkering
with my Neovim configuration and building some plugins for it. But
then I started to dive a bit deeper and make some other stuffs too.
And that's when I noticed that there is no currently maintained tool
like nvm/pyenv/rbenv for Lua (found
https://github.com/DhavalKapil/luaver and
https://github.com/cehoffman/luaenv - but no activity for 4 years).

So I built one: https://github.com/MunifTanjim/luver

This takes a different approach than the two aforementioned tools.

- It only adds about 10 LOC to your shell's startup config. So it's
very fast. (luaver adds about 700 LOC).
- No shims, i.e. when you run a command (e.g. lua, luarocks or some
binary installed using luarocks) it does not pass through a script
provided by Luver. You run the actual binary directly. (luaenv uses
shims).

Here are the features of Luver:

- Install and switch between Lua versions.
- Use different Lua versions on different shell sessions.
- Associate a specific LuaJIT and LuaRocks version to each installed
Lua version.
- Install the latest unreleased LuaJIT from the git repository.
- Shell completion support for Bash/Fish/Zsh.

As a bonus, if you want to use Luver in your GitHub Actions workflow -
a GitHub Action is available for it:
https://github.com/MunifTanjim/luver-action

I'd be really happy if this tool helps at least some of you! In case
you decide to try it and found some bug or have any suggestions, feel
free to create an issue on GitHub.

_P.S.: Why is it called Luver? It's a pun... Lua + Version = Luver
(sounds like lover)._

Have a great day!
Munif Tanjim,
https://muniftanjim.dev