Ruby非阻塞库与Node

Ruby non-blocking libraries vs Node

本文关键字:Node Ruby      更新时间:2023-09-26

我正在评估Ruby EventMachine(以及类似的非阻塞框架,如Cramp)与Node.js的对比。我以前使用过Node,但从未使用过EventMachine。Ryan Dahl鼓励的一个想法是,javascript中的库生态系统必须类似地非阻塞,才能促进这一点。这也是Node从头开始开发的部分原因。

我的问题是,在Ruby中,你能在没有阻塞的情况下走得更远吗?我的假设是,仅靠EventMachine通常不足以构建一个完整的web应用程序堆栈。如果是这样的话,Ruby中还有哪些库提倡非阻塞IO(即数据库/文件系统/http访问)?

你应该看看伊利亚·格里戈里克的很多作品,以及他在Synchrony和Goliath上的作品。

它们可以帮助您编写带有命令式回调的异步代码(看起来是同步的)。

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

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