使用Crystal的Ruby gem原生扩展?

时间:2016-09-12 18:00:12

标签: ruby rubygems crystal-lang ruby-native-extensions

我只是想收集一些一般信息,因为我正在寻求提高ActiveModelSerializers的性能。

我之前从未编写过本机扩展,但已经查看了一些C扩展和Rust扩展。

我的问题:

  • 这已经完成了吗? (在红宝石宝石中写一个水晶原生扩展?)
  • 与红宝石物体/结构的相互作用如何在水晶中起作用? (是否需要进行任何形式的编组或两种语言之间的通信?)

2 个答案:

答案 0 :(得分:2)

由于Ruby API是用C语言编写的,因此应该可以为它创建Crystal绑定,然后在Crystal中编写Ruby扩展。

例如,查看crystalyzed_ruby项目: https://github.com/phoffer/crystalized_ruby

答案 1 :(得分:1)

这个问题现在可能被问了一百万次。您可以尝试这样做,但请记住Crystal有一个GC,所以在Crystal中编写本机扩展名真的没什么意义。使用没有GC的C或Rust。