LuaRocks est un gestionnaire de paquets pour le langage de programmation Lua qui fournit un format standard pour la distribution de modules Lua (dans un format autonome appelé « rock »), un outil conçu pour gérer facilement l'installation de rocks et un serveur pour les distribuer. Bien qu'il ne soit pas inclus dans la distribution Lua, il a été appelé le « gestionnaire de paquets de facto pour les modules Lua fournis par la communauté ».
L'interface de LuaRocks est un outil de ligne de commande appelé luarocks qui permet d'installer des bibliothèques et de gérer les roches Lua. LuaRocks s'intègre éventuellement au chargeur d'exécution Lua pour aider à trouver et à charger les roches installées tout en gérant les dépendances de version. Bien qu'il soit possible d'utiliser un référentiel LuaRocks privé, le référentiel public est le plus souvent utilisé pour la gestion des roches. En décembre 2016, il y avait plus de 1 500 roches dans le référentiel public.
Le référentiel public aide les utilisateurs à trouver des rocks, à résoudre les dépendances et à les installer. LuaRocks est compatible avec les versions Lua 5.1, 5.2 et 5.3, ainsi qu'avec LuaJIT .
Histoire
Le développement de LuaRocks a été lancé en 2006 par Hisham Muhammad et a été rendu public le 9 août 2007.
En 2015, le référentiel public est passé d'une page statique gérée par le développeur de l'outil à un nouveau serveur écrit en MoonScript par Leaf Corcoran. De plus, le développement de LuaRocks a été déplacé vers GitHub en 2010.
Portabilité
LuaRocks est écrit en Lua lui-même et est multiplateforme . Il est disponible dans toutes les principales distributions Linux . Cependant, comme les paquets de distribution sont souvent en retard par rapport à la dernière version, il est recommandé d'installer la dernière version. Lorsqu'il est installé à partir de l' archive tar en amont , LuaRocks peut se mettre à niveau sur les systèmes Unix .
Pour Windows , LuaRocks distribue un fichier de package comprenant LuaRocks, Lua 5.1 et les utilitaires requis qui manquent dans un système Windows classique. Le package Windows prend en charge les suites de compilateurs Microsoft Visual Studio et MinGW . Pour une exécution sur Cygwin , le package Unix doit être utilisé.
Sur macOS , LuaRocks est inclus dans le package Lua du gestionnaire de packages Homebrew . L'archive tar Unix peut également être installée directement sur macOS.
Il a également été signalé que LuaRocks fonctionne sur FreeBSD , OpenBSD , NetBSD et Solaris .
En raison de problèmes d'installation (autorisations nécessaires à l'installation du système, paquets système en retard, etc.), il existe hererocksun paquet disponible dans l' index des paquets Python qui peut être installé via pip et fournit des installations de Lua et LuaRocks dans un répertoire local à la demande.
Projets utilisant LuaRocks
LuaRocks permet d'installer des modules Lua dans des chemins Lua standard ainsi que dans des emplacements personnalisés. Pour cette raison, il est possible de l'utiliser pour installer des extensions sur n'importe quel projet qui utilise des modules Lua standard, comme le gestionnaire de fenêtres Awesome . Certains projets ont cependant adopté LuaRocks comme solution recommandée pour gérer les extensions, les intégrer et, dans certains cas, maintenir leur propre référentiel de modules spécifiques au projet. Certains projets qui utilisent LuaRocks de cette manière sont :
- Kong Gateway - une passerelle API open source. Kong utilise LuaRocks pour construire la passerelle et prend en charge l'installation de plugins et de roches supplémentaires.
- Torch - Torch, un framework pour l'apprentissage automatique, utilise LuaRocks pour gérer ses modules. Torch utilise son propre référentiel de roches.
- Tarantool - la base de données Tarantool utilise LuaRocks pour gérer ses extensions.