dram.me

FFI的便利性和局限性

尝试利用LuaJIT的FFI对接C的connect接口,发现其中sockaddr结构体的定义有很多层次的嵌套,很难在保证各平台可移植性的基础上简单完成接口封装。

相对来说,这种情况下,反而直接编写Lua模块更为直接。

当然,另一种方案是类似CHICKEN、Gambit的机制,由于语言实现是间接编译到C代码,所以可以直接内嵌C代码。

还有一种思路,是C++,几乎完全兼容C标准。