Hva er LUA-filformatet?
En .lua-fil inneholder kildekoden til et program eller en applikasjonsutvidelse, vanligvis for et spill eller en innebygd applikasjon, skrevet i programmeringsspråket Lua. Kildekode er en samling av kommandoer, instruksjoner og variabeldefinisjoner skrevet med en definert syntaks. .lua er en ren tekstfil som kan åpnes og redigeres med et hvilket som helst tekstredigeringsprogram; det anbefales imidlertid at slike filer åpnes i redigeringsverktøy som støtter syntaksutheving. En .lua-fil kan inneholde en rekke korte kommandoer, så vel som en komplett program- eller modulkode.
Lua-syntaks henter inspirasjon fra Pascal, og språket bruker assosiative tabeller (kalt *tables*) og utvidbar semantikk via metatabeller. Lua beskrives av utviklerne som:
- Robust og testet - brukt av mange anerkjente utviklere og prosjekter, inkludert Adobe Lightroom-tillegg, Wikipedias Scribunto-malsystem, CCTV og innebygd fastvare, og spill som World of Warcraft (brukergrensesnitt-tillegg) og det originale Angry Birds.
- Rask - ansett som det raskeste tolkede skriptspråket; LuaJIT, den just-in-time-kompilerte varianten, øker ytelsen ytterligere.
- Plattformuavhengig - Lua distribueres som plattformuavhengig ANSI C-kildekode, og kjører på Linux, Windows, macOS, Android, iOS, innebygde systemer og stormaskiner.
- Integrerbar - veldokumentert og enkel å integrere via sitt C-API med kode skrevet i andre språk, både kompilerte og skriptspråk.
- Enkelt og kraftfullt - tilbyr støtte for metafunksjoner (metatabeller og metametoder) som kan utvides etter behov.
- Lettvektig og gratis - tolkeren legger til omtrent 300 KB i en applikasjon, og språket er utgitt under MIT-lisensen.
Lua ble laget i 1993 av dataingeniørene Roberto Ierusalimschy, Waldemar Celes og Luiz Henrique de Figueiredo ved det pavelige katolske universitetet i Rio de Janeiro (PUC-Rio). Det vedlikeholdes av forskningslaboratoriet LabLua ved universitetets institutt for informatikk. «Lua» betyr «måne» på portugisisk. Flere versjoner av språket har blitt utviklet siden opprettelsen; den nåværende stabile versjonen er Lua 5.4, introdusert i 2020, som brakte en ny generasjons søppeltømmer og en distinkt heltall-undertype. Ferdigkompilert Lua-bytekode lagres i .LUAC-filer og har en binær \x1BLua magic-header i stedet for lesbar tekst.
Sikkerhet og trygghet
RISIKO: MEDIUMEn .lua-fil er kildeKODE, så det er trygt å lese den, men det er ikke trygt å KJØRE en utrygg fil: Lua-skript kan kalle os.execute, io.open, os.remove og laste inn native biblioteker, så et ondsinnet skript kan slette filer, stjele data eller kjøre systemkommandoer - akkurat slik enkelte spill-fusk og «gratis skript» i .lua-format angriper brukere. Les alltid en nedlastet .lua-fil før du kjører den, hent spilltillegg/modifikasjoner kun fra anerkjente kilder, og vær på vakt mot obfuskert kode eller bytekode-skript (.luac) som du ikke kan inspisere. Inne i en sandkasse-vert (f.eks. Roblox) er risikoen lavere, men «skript» basert på sosial manipulering er fortsatt en vanlig svindelmetode.
Formatdetaljer
i et nøtteskallProgrammer som åpner LUA-filer
Tekniske detaljer
dyp spesifikasjon| Filtype | Kildekode i ren tekst (UTF-8 eller ASCII) |
| MIME-type | text/x-lua |
| Filsignatur (magic bytes) | Ingen for kildekodefiler - ren tekst uten binær header. Ferdigkompilert bytekode bruker 1B 4C 75 61 (ESC + «Lua») |
| Syntaksparadigme | Multiparadigme: proseduralt, objektorientert via metatabeller, og funksjonelt |
| Kjernedatastruktur | Table (assosiativ tabell) - den eneste sammensatte typen, fungerer som matriser, ordbøker og objekter |
| Kommentarsyntaks | -- for enkeltlinje; --[[ ... --]] for blokkommentarer |
| Shebang-støtte | Kildekodefilen kan begynne med #!/usr/bin/env lua for direkte utførelse på Unix-lignende systemer |
| Standard kjøretidsmiljø | lua (tolker), luac (bytekode-kompilator), luajit (JIT-kompilator) |
| API for vertsintegrering | Kompakt C-API (lua_State, luaL_newstate, lua_call); bindinger tilgjengelig for C++, Python, Java og andre |
| Standardbibliotek | io, os, string, table, math, coroutine, package, utf8, debug - minimalt fotavtrykk etter design |
| Støtte for korutiner | Førsteklasses asymmetriske korutiner via coroutine.create / coroutine.resume / coroutine.yield |
| Søppeltømmer | Inkrementell trefarget «mark-and-sweep»; valgfri generasjonsmodus introdusert i Lua 5.4 |
| Numeriske typer | Distinkte undertyper for heltall (64-bit som standard) og flyttall (dobbel presisjon) siden Lua 5.3 |
| Modulsystem | require() løser opp .lua-kildekode og binære C-utvidelser (.so / .dll) via package.path / package.cpath |
| Lisens | MIT-lisens (åpen kildekode, gratis for all bruk inkludert kommersiell) |
| Utgitt | Lua created in 1993 at PUC-Rio (Pontifical Catholic University of Rio de Janeiro) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.lua.org |
LUA-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om LUA-filer.