2 个版本
0.1.3 | 2021 年 6 月 23 日 |
---|---|
0.1.1 | 2021 年 6 月 5 日 |
0.1.0 |
|
在 编程语言 分类中排名第 698
27KB
604 行
👨💻 gluac-rs
使用 Rust 编译 Garry's Mod Lua 成字节码!
特性
- 兼容 Windows 和 Linux
- 支持游戏的 32 位和 64 位版本(但您必须为正确的目标编译)
- 线程安全
使用方法
将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
gluac-rs = "*"
parking_lot
支持
此包支持 parking_lot
Mutex,只需添加 parking_lot
功能标志,如下所示
[dependencies]
gluac-rs = { version = "*", features = ["parking_lot"] }
示例
// A utility macro for user-friendly generation of Lua-compatible CStrings.
use gluac::lua_string;
// The instance of our bytecode compiler. This internally creates and prepares a Lua state and closes it when dropped.
let compiler: BytecodeCompiler = gluac::compiler();
// Compiling a Lua source code string
let result: Result<Vec<u8>, BytecodeError> = compiler.compile_string(lua_string!(r#"print("Hello, world!")"#));
...
// Compiling a file
let result: Result<Vec<u8>, BytecodeError> = compiler.compile_file(lua_string!(r#"path/to/file.lua"#));
...
依赖项
此包需要在可执行文件同一目录中存在一些依赖项。
查找位置
您可以在 Garry's Mod 安装目录中找到这些库,它们似乎在不同的平台和分支上有多个路径,所以以下是所有我知道的路径
bin/
bin/win64
bin/linux32
bin/linux64
garrysmod/bin
请确保使用与您的游戏分支(32 位/64 位)对应的正确依赖项
Windows
lua_shared.dll
tier0.dll
vstdlib.dll
Linux
您可能还需要将目录添加到 LD_LIBRARY_PATH
环境变量中。
lua_shared.so
libtier0.so
libvstdlib.so
libsteam_api.so
(仅限 32 位)
我认为旧版本的 Garry's Mod 在这些库的文件名中使用了 _srv
后缀。这些也是受支持的。
致谢
Willox - Lua 绑定和 lua_shared 加载的基础代码
Mats - 帮助 :D
依赖项
~0.7–1.1MB
~10K SLoC