Lua : LuaRocks

Par lcirpaci, 28 février, 2025
Lua logo

Luarocks : un gestionaire de module

LuaRocks est un gestionnaire de paquets qui permet d'installer, de gérer et de distribuer facilement des modules Lua. Il fonctionne de manière similaire à npm pour JavaScript ou pip pour Python. Avec LuaRocks, vous pouvez rechercher et installer des bibliothèques Lua en quelques commandes.

Installation de LuaRocks

Windows Considérer utiliser Linux 🐧

  • Lua 5.1 d'installer et dans le PATH Windows
  • Dernière version stable
  • Extraire le fichier
  • Exécuter la comamnde install.bat en administrateur

Linux

sudo apt update && sudo apt upgrade -y && sudo apt install lua5.1 -y && sudo apt install luarocks -y

Utilisation de LuaRocks

Le site officiel de LuaRocks, luarocks.org, est la principale ressource pour explorer et télécharger des modules Lua. Il propose une vaste collection de bibliothèques développées par la communauté, ainsi que des guides pour aider à la gestion et à la publication de modules.

Installer un module

luarocks install module_name

Voirs les modules installer

luarocks list

Supprimer un module installer

luarocks remove module_name

Example d'utilisation

luarocks install luafilesystem
cd ~
mkdir LuaProjet
cd LuaProjet
mkdir test_a
mkdir test_b
touch test.lua

mettre se code dans test.lua

local lfs = require("lfs")
local current_dir = lfs.currentdir()
print("Répertoire actuel : " .. current_dir)
for file in lfs.dir(current_dir) do
	print(file)
end
Répertoire actuel : /home/$USER/LuaProjet
.
..
test.lua
test_a
test_b

Publier son propre module

Vous aurez besoin

  • d'un compte sur Le site officiel de LuaRocks
  • d'un dépôt git public
  • d'une archive .zip de votre projet sur se dépôt git
  • d'un code sous format de table et qui retorune se tableaux.
    • Examples : monmodule.lua
local monmodule = {}
function  monmodule.hello(name)
	return  "Bonjour, " .. (name or  "monde") .. " !"
end
return monmodule
  • d'un fichier *-maj.min-patch.rockspec
package = "monmodule"
version = "1.0-1"
source = {
    url = "https://github.com/moi/depotXYZ/archive/main.zip",
    dir = "monmodule-main"
}
description = {
    summary = "Un module simple qui dit bonjour",
    homepage = "https://github.com/moi/depotXYZ",
    license = "MIT"
}
dependencies = {}
build = {
    type = "builtin",
    modules = {
        monmodule = "monmodule.lua"
    }
}

Tester localement

luarocks make monmodule-1.0-0.rockspec

local monmodule = require("monmodule")
print(monmodule.hello("LuaRocks"))
Bonjour, LuaRocks !

Publier officielement

  • Via la commande luarocks upload monmodule-1.0-1.rockspec
  • Via l'Interface graphique sur le site

Références

Étiquettes

Commentaires4

mboudemagh

il y a 1 mois 3 semaines

Merci pour ton article! Je voulais savoir s'il était possible d'upload plusieurs modules en même temps ou s'il était seulement possible d'en upload un à la fois.

lcirpaci

il y a 1 mois 3 semaines

En réponse à par mboudemagh

Il faudrais tester ;) mais je ne vois pas pouruqoi sa ne serais pas possible

akhakimov

il y a 1 mois 3 semaines

Je te remecie pour ce blog. Ça fournit une bonne introduction à LuaRocks. Je n'en avais jamais entendu parler auparavant.

La mention de la communauté LuaRocks m'a fait penser à Cargo dans Rust, qui fournit également des bibliothèques communautaires via crates.io. Comment les écosystèmes de bibliothèques communautaires de LuaRocks et Cargo se comparent-ils en termes de qualité et de support?

Ces exactement comme crates.io niveau support, ces sur le github du projet que cela se passe