JRuby 近况:1.5.1、Google App Engine 及本地扩展

  • Werner Schuster
  • 丁雪丰

2010 年 7 月 1 日

话题:RubyGoogle语言 & 开发

Google App Engine (GAE)的 Java 支持允许开发者使用一些基于 JVM 的语言,例如 JRuby。JRuby 1.5的用户需要使用JRuby 1.5.1,最新版本中修正了一些 GAE 上的问题。

GAE 上的 JRuby 用户会遇到一些 GAE 强加的限制,例如没有关系型数据库,这意味着需要使用 DataMapper 来代替 ActiveRecord。欲了解 JRuby on GAE 的更多技巧,可以阅读这篇关于 JRuby on GAE 基础知识的文章,以及运行于 GAE 的全文搜索范例

JRuby 的一个限制是缺乏本地扩展支持,这也就是说很多库对 JRuby 开发者是不可用的,除非有人花时间将其中的本地部分移植到 Java 上。

几个月前,Wayne Meissner 启动了一个项目,希望能在 JRuby 中运行很多本地 扩展。为什么不是全部本地扩展呢?原因是一些扩展所依赖的 MRI 实现细节不能(简单地)在 JRuby 中重现。尽管如此,仅支持通用的本地扩展已经能帮助不少用户了。

Ruby Summer of Code中的一个项目(由Tim Felgentreff负责),正在继续让本地扩 展运行于 JRuby 之上的工作。可以关注GitHub 上 Tim 的 JRuby fork 的提交来了解项目的进展情况。

如果你是一个 GAE 用户,本地扩展支持不会有什么帮助,因为 GAE 上没有本地代码;但对其他所有 JRuby 用户而言:你错过了哪些本地扩展呢?

查看英文原文:JRuby Roundup: 1.5.1, Google App Engine, Native Extensions

RubyGoogle语言 & 开发