但是Lua可以很容易地被扩展：由宿主语言（通常是C或C++）提供这些功能，Lua可以使用它们，就像是本来就内置的功能一样。事实上，现在已经有很多成熟的扩展模块可供选用。Lua是一个动态弱类型语言，支援增量式垃圾收集策略。有内建的，与操作系统无关的协作式多线程支援。Lua原生支援的数据类型很少，只提供了数值（缺省是双精度浮点数，可配置）、布尔量、字符串、表格、函数、线程以及用户自定义数据这几种。但是其处理表和字符串的效率非常之高，加上元表的支援，开发者可以高效的模拟出需要的复杂数据类型（比如集合、数组等）