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服务器”。
如果他们应该组队? 绝对:)