Lua is a lightweight scripting language that supports object-oriented, functional and data-driven programming. It is embedded into applications and has a simple syntax and learning curve. Lua compiles to bytecode and integrates well with C/C++. It uses garbage collection and supports features like modules, coroutines, metatables and standard libraries.