Was ist das LUA-Dateiformat?
Eine .lua-Datei enthält den Quellcode eines Programms oder einer Anwendungserweiterung, typischerweise für ein Spiel oder eine eingebettete Anwendung, geschrieben in der Lua-Skriptsprache. Quellcode ist eine Sammlung von Befehlen, Anweisungen und Variablendefinitionen, die nach einer festgelegten Syntax verfasst werden. .lua ist eine Klartextdatei, die mit jedem Texteditor geöffnet und bearbeitet werden kann; empfehlenswert sind jedoch Editoren mit Syntaxhervorhebung. Eine .lua-Datei kann eine Reihe kurzer Befehle sowie vollständigen Programm- oder Modulcode enthalten.
Die Lua-Syntax ist von Pascal inspiriert; die Sprache verwendet assoziative Arrays (sogenannte *Tables*) und erweiterbare Semantik über Metatables. Ihre Entwickler beschreiben Lua als:
- Robust und erprobt - verwendet von vielen renommierten Entwicklern und Projekten, darunter Adobe-Lightroom-Plugins, das Scribunto-Vorlagensystem von Wikipedia, CCTV-Systeme und eingebettete Firmware sowie Spiele wie World of Warcraft (UI-Addons) und das ursprüngliche Angry Birds.
- Schnell - gilt weithin als schnellste interpretierte Skriptsprache; LuaJIT, die Just-in-Time-kompilierte Variante, steigert die Leistung noch weiter.
- Plattformübergreifend - Lua wird als plattformunabhängiger ANSI-C-Quellcode vertrieben und läuft auf Linux, Windows, macOS, Android, iOS, eingebetteten Systemen und Großrechnern.
- Einbettbar - gut dokumentiert und über seine C-API leicht in Code anderer Sprachen integrierbar, sowohl kompiliert als auch Skriptsprachen.
- Einfach und leistungsstark - bietet Unterstützung für Meta-Features (Metatables und Metamethoden), die bei Bedarf erweitert werden können.
- Leichtgewichtig und frei - der Interpreter fügt einer Anwendung etwa 300 KB hinzu, und die Sprache wird unter der MIT-Lizenz veröffentlicht.
Lua wurde 1993 von den Informatikern Roberto Ierusalimschy, Waldemar Celes und Luiz Henrique de Figueiredo an der Päpstlichen Katholischen Universität von Rio de Janeiro (PUC-Rio) entwickelt. Sie wird vom Forschungslabor LabLua im Institut für Informatik dieser Universität gepflegt. „Lua“ bedeutet auf Portugiesisch „Mond“. Seit ihrer Entstehung wurden mehrere Sprachversionen entwickelt; das aktuelle Stable Release ist Lua 5.4, eingeführt im Jahr 2020, das einen neuen generationsbasierten Garbage Collector und einen eigenständigen Integer-Subtyp mitbrachte. Vorkompilierter Lua-Bytecode wird in .LUAC-Dateien gespeichert und trägt einen binären \x1BLua-Magic-Header anstelle von lesbarem Text.
Sicherheit
RISIKO: MEDIUMEine .lua-Datei ist Quellcode, daher ist das Lesen sicher - das AUSFÜHREN einer nicht vertrauenswürdigen Datei ist es jedoch nicht: Lua-Skripte können os.execute, io.open, os.remove aufrufen und native Bibliotheken laden, sodass ein bösartiges Skript Dateien löschen, Daten exfiltrieren oder Systembefehle ausführen kann - genau so greifen manche Spielcheat- und „Gratis-Skript“-LUA-Dateien Nutzer an. Lesen Sie heruntergeladene .lua-Dateien immer, bevor Sie sie ausführen, beziehen Sie Spiel-Addons/Mods nur aus seriösen Quellen und seien Sie bei verschleierten oder Bytecode-(.luac)-Skripten vorsichtig, die Sie nicht prüfen können. In einer abgeschirmten Host-Umgebung (z. B. Roblox) ist das Risiko geringer, aber Social-Engineering-„Skripte“ sind dort dennoch ein häufiger Betrugsvektor.
Formatdetails
kurz gefasstProgramme zum Öffnen von LUA-Dateien
Technische Details
technische Spezifikation| Dateityp | Klartextquellcode (UTF-8 oder ASCII) |
| MIME-Typ | text/x-lua |
| Dateisignatur (Magic Bytes) | Keine für Quelldateien - reiner Text ohne Binär-Header. Vorkompilierter Bytecode verwendet 1B 4C 75 61 (ESC + „Lua“) |
| Syntaxparadigma | Multiparadigmisch: prozedural, objektorientiert via Metatables und funktional |
| Kern-Datenstruktur | Table (assoziatives Array) - der einzige zusammengesetzte Typ, der als Array, Dictionary und Objekt dient |
| Kommentarsyntax | -- für einzeilig; --[[ ... --]] für Blockkommentare |
| Shebang-Unterstützung | Quelldatei kann mit #!/usr/bin/env lua für direkte Ausführung auf Unix-ähnlichen Systemen beginnen |
| Standard-Laufzeitumgebung | lua (Interpreter), luac (Bytecode-Compiler), luajit (JIT-Compiler) |
| Host-Einbettungs-API | Kompakte C-API (lua_State, luaL_newstate, lua_call); Bindings verfügbar für C++, Python, Java und weitere |
| Standardbibliothek | io, os, string, table, math, coroutine, package, utf8, debug - minimaler Footprint by Design |
| Coroutine-Unterstützung | Erstklassige asymmetrische Coroutines via coroutine.create / coroutine.resume / coroutine.yield |
| Garbage Collector | Inkrementelles Dreifarbmarkierungs-Sweep; optionaler Generationsmodus eingeführt in Lua 5.4 |
| Numerische Typen | Separate Integer- (standardmäßig 64-Bit) und Float- (doppelte Genauigkeit) Subtypen seit Lua 5.3 |
| Modulsystem | require() löst .lua-Quellcode und binäre C-Erweiterungen (.so / .dll) über package.path / package.cpath auf |
| Lizenz | MIT-Lizenz (Open Source, frei für jeden Einsatz einschließlich kommerzieller Nutzung) |
| Veröffentlicht | Lua created in 1993 at PUC-Rio (Pontifical Catholic University of Rio de Janeiro) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | www.lua.org |
LUA-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu LUA-Dateien.