Lua (portugisisk for "måne") er et scriptprogrammeringssprog til integrering i programmer, med det formål at gøre det nemmere at videreudvikle dem. En af sprogets særlige egenskaber er scriptfortolkerens ringe størrelse.
Lua blev udviklet i 1993 af Roberto Ierusalimschy, Luiz Henrique de Figueiredo og Waldemar Celes fra Computer Graphics Technology Group ved Pontifícia Universidade Católica do Rio de Janeiro, et katolsk universitet i Rio de Janeiro, Brasilien. Lua er fri software og blev indtil version 5 udgivet under en BSD-licens, og fra version 5 under MIT-licensen.
Sproget anvendes ofte i computerspil. I kommercielle spil anvendes Lua eksempelvis i Heroes of Newerth, Heroes of Might and Magic V, Monkey Island 4, Spellforce, Far Cry, World of Warcraft, Microsoft Freelancer, Half-Life 2, Garry's Mod, The Settlers V, Parkan 2, Star Wars: Battlefront II og Company of Heroes, mens det fri software anvendes i eksempelvis Angband 3 (og varianterne ZAngband og ToME).
Programmer skrevet i Lua bliver før udførelsen oversat til byte-code. Selvom man kan skrive selvstændige programmer i Lua, er det primært tænkt som et scriptsprog til C-programmer, i denne forbindelse sammenligneligt med Tcl.
Lua-fortolkeren kan kaldes gennem et C-bibliotek, der også indeholder et API til kald af fortolkeren fra C-programmer på kørselstidspunktet. Gennem API'et kan forskellige dele af programmet skrives i C eller Lua, mens variabler og funktioner er tilgængelige i begge retninger (dvs. en funktion i Lua kan kalde en funktion i C, og omvendt).
Implementeringen af Lua er i ANSI-C, og der understøttes funktions- såvel som objektionsorienteret programmering.