Ruby FFI
Ruby-FFI 是一个用于通过程序化方式加载动态链接的本机库的 gem。 库、它们中的绑定函数以及调用这些函数 来自 Ruby 代码。此外, Ruby-FFI 扩展可以在不做任何更改的情况下运行。 关于 CRuby (MRI)、JRuby、Rubinius 和 TruffleRuby。了解为什么你应该编写下一个扩展 使用 Ruby-FFI。
require 'ffi'
module MyLib
extend FFI::Library
ffi_lib 'c'
attach_function :puts, [ :string ], :int
end
MyLib.puts 'Hello, World using libc!'如果需要更多的示例,可以查看以下内容: * 文档 * samples/ 文件夹 * wiki 中的示例 * wiki 上列出的使用 FFI 的项目:https://github.com/ffi/ffi/wiki/projects-using-ffi
或者由 --disable-system-libffi 禁用。在运行 PaX (Gentoo、Alpine 等) 的 Linux 系统上,FFI 可能会触发 mprotect 错误。您可能需要暂时禁用 ruby 的 mprotect(paxctl -m [/path/to/ruby])。
暂无开放 Issues,或尚未同步最近议题。