Pourquoi convertir LUA en LUAC ?
Distribuer des scripts sous forme de bytecode supprime la charge d'analyse à chaque chargement et empêche la lecture directe du code source. Le format .luac est la représentation native du bytecode compilé de Lua, produit directement par la chaîne d'outils standard Lua incluse dans chaque installation de Lua.
Comment convertir LUA en LUAC
luac FREE
Exécutez luac -o script.luac script.lua dans un terminal. Ajoutez -s pour supprimer les informations de débogage et obtenir un fichier plus petit, ou listez plusieurs fichiers .lua pour les compiler dans un seul bloc de bytecode.
LuaJIT FREE
Exécutez luajit -b script.lua script.luac pour compiler vers le format de bytecode propre à LuaJIT. Notez que le bytecode LuaJIT est incompatible avec la machine virtuelle Lua standard.
À propos de ces formats
Un fichier LUA est un code source écrit en Lua, un langage de script léger créé en 1993. N'importe quel éditeur de code (VS Code, Notepad++) l'ouvre pour la lecture ou l'édition. Pour…
Ouvrir les détails de .LUA →Un fichier .LUAC est associé à Lua Compiled Source Code, un fichier de type developer.
Ouvrir les détails de .LUAC →Qualité et points de vigilance
- Un fichier
.luacest lié à la version exacte de Lua qui l'a compilé ; un bytecode provenant deluac 5.4sera rejeté par Lua 5.3 ou antérieur. - Le bytecode n'est pas chiffré - des outils tels que
unluacpeuvent décompiler partiellement les fichiers.luac. Ne comptez pas dessus pour protéger une logique sensible. - Le format du bytecode est spécifique à la plateforme ; un
.luaccompilé sur une machine 64 bits peut échouer sur un appareil 32 bits. Compilez sur la plateforme qui exécutera le script.
Foire aux questions
Est-ce que luac est déjà installé si j'ai Lua ?
luac est fourni avec la distribution officielle de Lua et ne nécessite aucun téléchargement séparé.Le fichier .luac s'exécutera-t-il plus vite que le .lua original ?
Puis-je récupérer le code source .lua original à partir d'un fichier .luac ?
-s avec luac supprime même les numéros de ligne et les noms de fonctions, rendant la récupération plus difficile.LuaJIT utilise-t-il le même format de bytecode que le Lua standard ?
luajit -b uniquement lorsque la cible utilise également LuaJIT.