让 Lua 插上翅膀:C 与 Lua 是怎么绑在一起的
Posted on 四 01 10月 2026 in Tech • Tagged with tech, lua, c, ffi, swig, freeswitch, openresty, luajit
Lua 自己什么都不会——不会发网络请求,不会读数据库,连打开一个文件都得靠宿主给的库。它小得可怜,却长在魔兽世界、Nginx、Redis、FreeSWITCH 这些庞然大物里,靠的就是一件事:跟 C 无缝对接,借用整个 C/C++ 生态。这篇讲清楚 C 和 Lua 到底是怎么绑在一起的——从那个来回倒数据的栈,到注册 C 函数、包装 C 对象,再落到两种真实风格:FreeSWITCH 用 SWIG 预生成胶水,OpenResty 用 LuaJIT FFI 干脆不写胶水。代码引用来自 FreeSWITCH master 分支与 LuaJIT 官方文档。
Continue reading