jetsung 使用 Rust 开发 Lua 的支持扩展 前置环境 Rust 需要使用到 cdylib 库 Lua 需要 LuaJIT 环境 http://luajit.org/download.html Linux 环境一般可以通过包管理直接安装,比如 apt install luajit 或 dnf install luajit 使用方式 创建项目 blua 库 cargo new blua --lib 修改项目的文件 Cargo.toml 后追加 [lib] name = "double_input" crate-type = ["staticlib", "cdylib"] src/lib.rs 内容修改为 #![crate_type = "dylib"] #[no_mangle] pub extern "C" fn double_input(input: i32) -> i32 { input * 2 } 编译类库 cargo build --release # 查看生成的文件 .so ls target/release/*.so # target/release/libdouble_input.so 创建文件 test.lua,内容为 print("Hello World") local ffi = require("ffi") ffi.cdef[[ int32_t double_input(int32_t n); ]] local rust_lib = ffi.load("./target/release/libdouble_input.so") local n = 1234 print(rust_lib.double_input(n)) 测试桥接是否成功 luajit test.lua # 打印 Hello World 2468