Lua | ||
![]() | ||
Date de première version | 1993 | |
---|---|---|
Paradigme | Multi-paradigme : procédural, orienté objet à prototype et fonctionnel | |
Auteur | Luiz Henrique de Figueiredo, Roberto Ierusalimschy et Waldemar Celes | |
Dernière version | 5.4.7 ()[1] | |
Typage | dynamique, faible | |
Influencé par | BASIC, C, C++ | |
A influencé | Micro Lua DS | |
Implémentations | Lua, LuaJIT, LLVM-Lua, LuaCLR, Nua, Lua Alchemy, MicroLua, | |
Écrit en | C | |
Système d'exploitation | Multiplate-forme | |
Licence | Licence MIT | |
Site web | lua.org | |
Extension de fichier | lua, luna, lunaire et anair | |
modifier ![]() |
Lua est un langage de script libre, réflexif et impératif.
Créé en 1993, il est conçu de manière à pouvoir être embarqué au sein d'autres applications afin d'étendre celles-ci. Lua (du portugais : Lua [ˈlu.ɐ], au Brésil : [ˈlu.a], signifiant « Lune »[2]) a été développé par Luiz Henrique de Figueiredo, Roberto Ierusalimschy (en) et Waldemar Celes, membres du groupe de recherche TeCGraf, de l'université pontificale catholique de Rio de Janeiro au Brésil.
L'interpréteur Lua est écrit en langage C ANSI strict, et de ce fait est compilable sur une grande variété de systèmes. Il est également très compact, la version 5.0.2 n'occupant que 95 ko à 185 ko selon le compilateur utilisé et le système cible. Il est souvent utilisé dans des systèmes embarqués tels qu'OpenWrt[3] où cette compacité est très appréciée. Il profite de la compatibilité que possède le langage C avec un grand nombre de langages pour s'intégrer facilement dans la plupart des projets. Il intègre un ramasse-miettes.
Il est particulièrement apprécié pour l'embarqué, le développement réseau et les jeux vidéo.
Le Lua est utilisé dans des jeux vidéo comme : Minetest, Transformice, World of Warcraft, Roblox, Garry's Mod, Onset, ComputerCraft (mod de Minecraft), Multi Theft Auto (mod multijoueur de Grand Theft Auto: San Andreas), FiveM (mod multijoueur de Grand Theft Auto V), Factorio, Project Zomboid, nanos world[4], ainsi que les moteurs de jeu vidéo tels que le SourceEngine, CryENGINE, LÖVE, ou encore les Fantasy consoles, tel que Pico-8.
Il est également utilisé au niveau réseau comme hook sur Apache, Lighttpd (par défaut), Nginx (via OpenResty), dans les routeurs Cisco, dans l'analyseur de paquets Wireshark, l'antispam Rspamd, l'autocommutateur téléphonique privé Asterisk (optionnel), pour les scripts de MediaWiki.