#mruby #ruby #ffi #low-level

sys mruby-sys

为mruby提供的底层Rust绑定

3个不稳定版本

0.2.0 2019年6月6日
0.1.1 2019年6月4日
0.1.0 2019年6月4日

#7 in #mruby

MIT 许可证

2MB
59K SLoC

C 35K SLoC // 0.1% comments Ruby 18K SLoC // 0.2% comments Happy 6.5K SLoC Rust 58 SLoC Batch 35 SLoC

mruby-sys

为Rust提供的底层mruby绑定

该包将构建mruby并将其静态链接到您的Rust应用程序中。目前它使用包含在vendor/目录下的子模块中包含的mruby 2.0.1。

这是一个非常早期的WIP,因此一些基本功能可能无法正常工作,或者更糟糕的是,它们可能看似工作,但实际上执行非常不安全的事情。在我的机器上有一个简单的hello world测试可以运行。

工作原理

大部分工作都在build.rs脚本中完成,该脚本

  1. 将vendor/目录中的mruby源代码复制到target/目录中
  2. 在target/目录中使用mruby的基于minirake的构建系统构建mruby
  3. 使用bindgen根据include/目录中的wrapper.h文件生成Rust绑定。这些绑定及其测试在src/lib.rs中重新导出。

待办事项列表

  • 启用选择gem的支持
  • 支持除clang以外的工具链
  • 合理地支持传递编译器标志到minirake构建中,特别是调试与发布构建。
  • Web Assembly?!
  • 合理地支持其他mruby构建选项,例如在不支持gem的情况下构建。

发行说明

0.2.0

  • 为string.h生成绑定

0.1.1

  • 修复了构建路径,以便其他crate可以实际依赖我们

0.1.0

  • 带有hello world功能的初始构建

许可证

版权 © 2019, Matthew McDonald。在MIT许可证下发布。

依赖项

~0–2.3MB
~44K SLoC