1 个不稳定版本

0.1.0 2019年9月13日

#43 in #场景

自定义许可

46KB
1K SLoC

Rust 854 SLoC // 0.0% comments Lua 239 SLoC // 0.3% comments

zenroom_minimal

一个Lua VM的简化绑定,包含默认的加密/编码模块,以及一个内置的适用于构建特定场景执行环境的可读性强的DSL。

动机

zenroom_minimal是DECODEproject的Zenroom的一个分支。在评估Zenroom时,我们发现尽管安全和加密功能非常灵活,但VM的性能不符合我们高性能/高吞吐量的标准。此外,我们还需要灵活的支持场景逻辑,以便在不同的安全环境中运行,因此诞生了zenroom_minimal,使用Rust作为模块构建工具,而不是Zenroom的C库。

用法

尽管Zenroom的库可以直接与rlua Lua环境一起使用。建议您使用zenroom_minimal的运行环境之一来执行代码,以充分利用VM的强大功能和安全性

默认运行时

默认运行时提供了一个沙箱Lua环境。此Lua环境阻止使用操作系统命令(如时间/文件系统等),并提供了一个import函数,用于白名单模块。

let res = DefaultRuntime::default()
    .load("return 'Hello, world!'")?
    .eval()?;

Zenroom运行时

Zenroom运行时利用Zencode通过加载的方案执行可读性保护代码。请参阅examples了解更多如何使用的信息。

依赖项

~8.5MB
~248K SLoC