应用场景
我把 Lua的应用场景 与 Lua的扩展与应用 里的领域、嵌入式和 C 互操作案例合在这份索引里,每条附项目或用法线索并回链原页。
游戏开发
- 游戏脚本:Unity3D、Cocos2d-x、CryEngine 等引擎支持 Lua 作脚本,控制游戏逻辑、事件处理、AI 行为;逻辑可边跑边改,不必重编整个游戏。
- 游戏扩展与插件:玩家用 Lua 写自定义内容,角色行为、关卡设计、游戏规则都能由玩家扩展。
- 有名字的案例:《World of Warcraft》《Angry Birds》《Dark Souls》用 Lua 写脚本。
嵌入式系统
- 资源受限设备:Lua 内存与运行时开销小,承担设备控制、配置管理、界面处理。
- 家电与消费电子:智能电视、机顶盒、路由器内嵌 Lua 作脚本引擎,可控制功能、灵活扩展。这几项站内未给出具体产品名。
- 交叉编译:Lua 的 Makefile 没有
CROSS变量,用CC指定工具链即可,例如make generic CC=arm-none-eabi-gcc。
Web 开发
- OpenResty 结合 Nginx 处理并发请求与动态内容生成,HTTP 处理、数据库交互、业务逻辑都在 Lua 里完成。
- API 网关:请求路由、负载均衡、安全检查用 Lua 脚本实现。
- 异步 I/O:OpenResty/ngx_lua 把网络 I/O 做成「非阻塞 + 协程挂起」,请求发出后协程让出,数据到达再恢复,使用者视角仍是顺序代码。
配置管理
- 动态配置文件:Lua 配置可含逻辑运算与条件判断,比 JSON、YAML 这类静态配置灵活;Neovim 用 Lua 管理配置。
- 软件定义网络(SDN):用 Lua 动态配置网络设备的行为和策略,运行时调整。
来源:Lua的应用场景。
数据分析
- 嵌入式数据处理:在 IoT 设备里处理传感器数据、做边缘计算。
- 数据清洗与转换:借表的处理能力写转换脚本,处理结构化或半结构化数据。
来源:Lua的应用场景。
测试与自动化
- 自动化测试:UI 测试、API 测试脚本。
- CI/CD:用 Lua 写构建、部署、发布的脚本,执行代码质量检查与测试。
来源:Lua的应用场景。
人工智能
- Torch:深度学习早期的主力框架以 Lua 为接口,后来被 PyTorch 等取代。这是历史用法,不是当前主流方向。
- 嵌入式 AI 推理:硬件资源有限时,用 Lua 做基本的机器学习算法或模型推理。
来源:Lua的应用场景。
C 扩展与嵌入
- 在 C 程序里嵌入 Lua:
luaL_newstate创建状态、luaL_openlibs打开标准库、luaL_dofile执行脚本。 - 写 C 扩展:
luaopen_mylib入口创建模块表并返回,Lua 侧require("mylib")加载。 - LuaJIT FFI:不写 C 扩展,直接用
ffi.cdef声明、ffi.load加载后调用 C 函数。 - 性能关键的部分用 C 实现,非关键部分用 Lua。
来源:Lua的扩展与应用、编写Lua C扩展、使用 LuaJIT 的 FFI 库。
相关角度
这里是带项目案例和出处的横向索引;各领域的背景记录见Lua 的应用场景。