Ruby非阻塞库vs Node

我正在评估Ruby EventMachine(以及类似的非阻塞框架,比如Cramp)和Node.js. 我之前和Node一起工作过,但从来没有和EventMachine合作过。 Ryan Dahl鼓励的观点之一是,JavaScript中的图书馆生态系统必须是类似的非阻塞的,以促进这一点。 这是为什么Node是从零开始开发的一部分。

我的问题是,你可以在没有阻塞的情况下使用Ruby吗? 我的假设是EventMachine单独通常不足以构build完整的Web应用程序堆栈。 如果是这样的话,Ruby中的其他库还能提供非阻塞IO(即用于数据库/文件系统/ http访问)?

你应该看看Ilya Grigorik的许多作品和他在Synchrony和Goliath上的作品 。

它们可以帮助您以callback的forms编写asynchronous代码(似乎是同步的)。

正如@Holder刚才指出的,在这里有一个用于EventMachine的非阻塞库列表:

https://github.com/eventmachine/eventmachine/wiki/Protocol-Implementations