13 个不稳定版本 (3 个重大更改)

0.4.8 2024年6月6日
0.4.7 2024年5月9日
0.4.4 2024年3月30日
0.3.1 2023年12月14日
0.1.0 2023年8月3日

#379 in Rust 模式

Download history 306/week @ 2024-05-03 116/week @ 2024-05-10 65/week @ 2024-05-17 104/week @ 2024-05-24 273/week @ 2024-05-31 240/week @ 2024-06-07 102/week @ 2024-06-14 73/week @ 2024-06-21 24/week @ 2024-06-28 169/week @ 2024-07-05 95/week @ 2024-07-12 28/week @ 2024-07-19 75/week @ 2024-07-26 153/week @ 2024-08-02 124/week @ 2024-08-09 33/week @ 2024-08-16

每月387次下载

MIT 许可证

62KB
1.5K SLoC

BYONDAPI-rs - BYONDAPI 的安全 Rust 绑定

此软件包实现了 BYONDAPI 的 Rust 安全 API。

警告

此库在第一次函数调用时自动初始化,使用 OnceCell。这种初始化可能会在以下情况下失败:所需的 BYONDAPI 符号未在当前可执行文件中找到。

处理此情况的唯一合理方法是 panic,这不可避免地会在 FFI 障碍处展开,这是 未定义的行为

有两种方法可以修复此问题,我选择了第二种

  1. 通过强制每个函数都接受一个库结构体的参数,使库 API 大大变差。
  2. 等待 bindgen 稳定 C-unwind abi

测试

为了成功运行 cargo test,您必须在您的库搜索路径中包含最近 BYOND 版本中的以下文件。对于 Windows,我建议复制以下文件到软件包根目录:

对于 Windows,我建议将以下文件复制到软件包根目录,crates/byondapi-rs/

  • byond/bin/byondcore.dll
  • byond/bin/byondext.dll
  • byond/bin/byondwin.dll

对于 Linux,确保以下文件在您的 LD_LIBRARY_PATH 中:

  • byond/bin/libbyond.so
  • byond/bin/libext.so

如果未执行此操作,则在尝试运行测试时将导致错误。

依赖项

~0.4–8MB
~58K SLoC