This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
| LuaRocks | |
|---|---|
| Original author | Hisham Muhammad |
| Developers | Hisham Muhammad, et al. |
| Initial release | August 9, 2007; 18 years ago (2007-08-09) |
| Stable release | 3.10.0 / February 27, 2024; 20 months ago (2024-02-27) |
| Repository | |
| Written in | Lua |
| Operating system | Linux,macOS,Windows (Cygwin),Solaris,OpenBSD,NetBSD,FreeBSD |
| Type | Package manager |
| License | MIT License |
| Website | luarocks |
LuaRocks is apackage manager for theLua 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".[1]
The interface for LuaRocks is acommand-line tool calledluarocks which can install libraries and manage Lua rocks.[2] 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.[3]
The public repository helps users find rocks, resolvedependencies and install them. LuaRocks is compatible with Lua versions 5.1, 5.2 and 5.3, as well asLuaJIT.
Development on LuaRocks was started in 2006 by Hisham Muhammad and was released to the public on August 9, 2007.[4]
In 2015, the public repository moved from a static page curated by the tool's developer to a new server written inMoonScript by Leaf Corcoran. Also, LuaRocks development was moved to GitHub in 2010.
LuaRocks is written in Lua itself, and it iscross-platform. It is available in all majorLinux distributions. However, since distribution packages often lag behind the latest release installing the latest release is recommended. When installed from theupstreamtarball, LuaRocks can upgrade itself onUnix systems.
ForWindows, 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 bothMicrosoft Visual Studio andMinGW compiler suites. For running onCygwin, the Unix package should be used.
OnmacOS, LuaRocks is included with the Lua package of theHomebrew package manager. The Unix tarball can also be installed directly on macOS.
LuaRocks has also been reported to work onFreeBSD,OpenBSD,NetBSD andSolaris.[4]
Due to installation issues (permissions needed for system installation, lagging system packages, etc.), there ishererocks, a package available at thePython Package Index that can be installed viapip and provides installations of Lua and LuaRocks into a local directory upon demand.[5]
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 theAwesome 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: