3 个版本
使用旧的 Rust 2015
0.1.3 | 2023 年 6 月 21 日 |
---|---|
0.1.2 | 2023 年 6 月 21 日 |
0.1.1 | 2023 年 6 月 21 日 |
#791 in 编程语言
48KB
957 行
TinyLJ
Fork of luajit-rs
用于从 Rust 与 LuaJIT 交互的库,用于运行高性能 Lua 代码,可以与用 Rust 编写的本地代码集成。
入门指南
use tinylj::{c_int, State, lua_fn};
fn return_42(state: &mut State) -> c_int {
state.push(42);
1
}
pub fn main() {
let mut state = State::new();
state.open_libs();
state.do_string(r#"print("Hello world!")"#);
state.push(lua_fn!(return_42));
state.set_global("return_42");
state.do_string(r#"print(return_42())"#);
}
lib.rs
:
TinyLJ
tinylj
是 LuaJIT 项目的简单包装,允许它从 Rust 中轻松调用,并且开销最小。该库中的大多数函数直接对应于底层的 Lua C API 调用
示例
#[macro_use]
extern crate tinylj;
use tinylj::{c_int, State};
fn return_42(state: &mut State) -> c_int {
state.push(42);
1
}
pub fn main() {
let mut state = State::new();
state.open_libs();
state.do_string(r#"print("Hello world!")"#);
state.push(lua_fn!(return_42));
state.set_global("return_42");
state.do_string(r#"print(return_42())"#);
}
依赖项
~0–1.4MB
~21K SLoC