#lua #running #calling

luajit

Rust 用于调用 LuaJIT 的包

2 个版本

使用旧的 Rust 2015

0.1.1 2019年2月3日
0.1.0 2018年1月7日

#12 in #calling

MIT 许可证

49KB
961 代码行

Luajit RS

文档

用于从 Rust 与 LuaJIT 交互的包,用于运行高性能的 Lua 代码,可以与用 Rust 编写的本地代码集成。

入门

#[macro_use]
extern crate luajit;

use luajit::{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())"#);
}

lib.rs:

LuaJIT RS

luajit_rs 是 LuaJIT 项目的简单包装,允许从 Rust 中轻松调用,并具有最小的开销。该包中的大多数函数直接对应于底层的 Lua C API 调用

示例

#[macro_use]
extern crate luajit;

use luajit::{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())"#);
}

依赖项

~43KB