LuaRocks
Package manager for Lua
LuaRocks is a package manager for the Lua programming language that provides a standard format for distributing Lua modules (in a self-contained format called a "rock"), a tool designed to easily manage the installation of rocks, and a server for distributing them. While not included with the Lua distribution, it has been called the "de facto package manager for community-contributed Lua modules".
The interface for LuaRocks is a command-line tool called luarocks which can install libraries and manage Lua rocks. LuaRocks optionally integrates with Lua run-time loader to help find and load installed rocks while managing version dependencies. Though it is possible to use a private LuaRocks repository, the public repository is most commonly used for rocks management. As of December 2016, there are over 1,500 rocks in the public repository.
The public repository helps users find rocks, resolve dependencies and install them. LuaRocks is compatible with Lua versions 5.1, 5.2, 5.3, and 5.4, as well as LuaJIT. Version 3.13.0 adds Lua 5.5 support, but some rocks may not be compatible with the new Lua version.
01History
Development on LuaRocks was started in 2006 by Hisham Muhammad and was released to the public on August 9, 2007.
In 2015, the public repository moved from a static page curated by the tool's developer to a new server written in MoonScript by Leaf Corcoran. Also, LuaRocks development was moved to GitHub in 2010.
In January 2024 the Lux package manager project was started to tackle the shortcomings of LuaRocks. It was originally called NeoRocks but has since been rebranded to Lux.
In February 2025 the maintainer of LuaRocks Hisham Muhammad (hishamhm) gave a statement on the state of the project and its shortcomings on Github Discussion in response to the Brazilian Youtuber Jorge Rezende (Luaverse). He wrote that 20 years of legacy code, the war between LuaJIT and the mainline Lua interpreter, whose newer features are incompatible, and his job made it hard for him and that he ran out of energy to improve LuaRocks, saying he's burned out. Further he explained that luarocks.org has been created and maintained by Leaf Corcoran, owner of Itch.io, from his own pockets.
02Portability
LuaRocks is written in Lua itself, and it is cross-platform. It is available in all major Linux distributions. However, since distribution packages often lag behind the latest release installing the latest release is recommended. When installed from the upstream tarball, LuaRocks can upgrade itself on Unix systems.
For Windows, LuaRocks distributes a package file including LuaRocks, Lua 5.1 and required utilities that are missing in a typical Windows system. The Windows package supports both Microsoft Visual Studio and MinGW compiler suites. For running on Cygwin, the Unix package should be used.
On macOS, LuaRocks is included with the Lua package of the Homebrew package manager. The Unix tarball can also be installed directly on macOS.
LuaRocks has also been reported to work on FreeBSD, OpenBSD, NetBSD and Solaris.
Due to installation issues (permissions needed for system installation, lagging system packages, etc.), there is hererocks, a package available at the Python Package Index that can be installed via pip and provides installations of Lua and LuaRocks into a local directory upon demand.
03Projects using LuaRocks
LuaRocks allows installing Lua modules to standard Lua paths as well as to customized locations. For this reason, it is possible to use it to install extensions to any project that uses standard Lua modules, such as the Awesome window manager. Some projects, however, adopted LuaRocks as their recommended solution for managing extensions, integrating it and in some cases, maintaining their own repository of project-specific rocks. Some projects that use LuaRocks in this fashion are:
Sources and credits
This article is adapted from the Wikipedia article “LuaRocks”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.