Apache Deft,Webbit和Vert.x的区别

我看到了在JVM上进行类似Node.JS的开发的很多潜力,其运行时间大大优化。

在这个时候,我看到三个旨在为JVM带来node.js风格的项目:

  • Apache Deft
  • Webbit
  • Vert.x (以前称为Node.x)

这些项目应该组队吗? 他们的优势和劣势是什么? 哪个项目的动力最强?

免责声明:我是Webbit的家伙

三个项目之间肯定有很多重叠。 当我build立Webbit的时候,我并没有意识到另外两个 – 如果我已经去过,那么可能根本不存在,或者我可能花了我的时间为其他人做出贡献。

我可以谈谈一下Webbit …

它不是一个多用途的IO框架。 或者networking协议工具包。 或文件系统抽象。 Webbit只做别人做的一小部分。

Webbit也不是一个全function的Web框架。 像Node.JS或Servlet API一样,它提供了构build更高级别框架的核心构build块,但将其留给了外部项目(如Webbit-EasyRemote或Webbit-REST )。

Webbit关注的是一个简单的,可embedded的,非阻塞的HTTP和WebSocket服务器。

因为它需要“做一件事,做得好”的方法,它也被devise成与其他图书馆一起使用。 它允许传入外部java.util.concurrent.Executors并避免单例线程上下文,使得它特别适合与Actor风格的并发库(如Jetlang和HeySync)集成 。

Vert.x和Deft为开箱即用的Node风格开发提供了完整的框架。 Webbit只是一个小工具,可以帮助您的应用程序启用HTTP / WebSocket。 这两者都有需要,这取决于你的需要(和个人风格)哪个更合适。

披露 – 我是vert.x的家伙:)

Vert.x是一个完善的平台,用于构build可扩展的,可扩展的,asynchronous的Web应用程序。

它深受node.js的启发,但是比node.js更进一步,并提供了一个从服务器到客户端JavaScript的分布式事件总线,从而为所谓的“实时”Web应用程序创build了一个超级简单模型。还附带一个邮件和一个mongodb persistor。这里有一个完整的教程http://vertx.io/tutorials.html

但是,与其他asynchronous框架区别的主要原因可能是多边形本质。 在Java,Ruby,JavaScript和Groovy中可以使用相同的(或类似的)API(需要遵循Clojure,Python和Scala的支持)。

Vert.x真的利用了JVM上真正的multithreading来提供可扩展性和性能,而不是Node.js无法触及的。

如果你不想要整个平台。 Vert.x也可以用作在Java或Groovy应用程序中提供HTTP,TCP,Websocket,sockjs,eventbus等支持的库。

欲了解更多信息,请参阅网站http://vertx.io

免责声明:我是Apache Deft提交者。

Apache Deft与龙卷风相比有更多的共同点,并且比node.js扭曲,而vert.x很受node.js的影响。 wmware的Tim Fox在vert.x方面做得很好,开发速度真的很棒。

vert.x有几个例子可用。 一些Apache Deft的例子 。 Apache Deft也有一个更大的“ 演示应用程序 ”,应该给你一个关于如何使用框架用于除http外的其他事情的想法。

AFAIK webbit目前正在成为一个“WebSocket和HTTP服务器”。

如果他们应该组队? 绝对:)