<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: (N)IO Frameworks in Java</title>
	<atom:link href="http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/</link>
	<description>From Programmer, For Programmers</description>
	<lastBuildDate>Tue, 07 Sep 2010 13:06:46 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: When NIO Frameworks Meets Exceptional Requirements on IT Projects - Rafael Marins</title>
		<link>http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/comment-page-1/#comment-15809</link>
		<dc:creator>When NIO Frameworks Meets Exceptional Requirements on IT Projects - Rafael Marins</dc:creator>
		<pubDate>Fri, 23 Jul 2010 07:35:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.ashishpaliwal.com/blog/?p=47#comment-15809</guid>
		<description>[...] Netty enables quick and easy development of network applications and provides an Universal Asynchronous I/O. Notwithstanding, having an [...]</description>
		<content:encoded><![CDATA[<p>[...] Netty enables quick and easy development of network applications and provides an Universal Asynchronous I/O. Notwithstanding, having an [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rafael Marins &#187; When NIO Frameworks Meets Exceptional Requirements on IT Projects</title>
		<link>http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/comment-page-1/#comment-7450</link>
		<dc:creator>Rafael Marins &#187; When NIO Frameworks Meets Exceptional Requirements on IT Projects</dc:creator>
		<pubDate>Tue, 22 Sep 2009 02:10:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.ashishpaliwal.com/blog/?p=47#comment-7450</guid>
		<description>[...] Netty enables quick and easy development of network applications and provides an Universal Asynchronous I/O. Notwithstanding, having an [...]</description>
		<content:encoded><![CDATA[<p>[...] Netty enables quick and easy development of network applications and provides an Universal Asynchronous I/O. Notwithstanding, having an [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trustin Lee</title>
		<link>http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/comment-page-1/#comment-6</link>
		<dc:creator>Trustin Lee</dc:creator>
		<pubDate>Tue, 14 Oct 2008 11:33:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.ashishpaliwal.com/blog/?p=47#comment-6</guid>
		<description>Thanks all for the great summary.  Let me link to this post.  :)</description>
		<content:encoded><![CDATA[<p>Thanks all for the great summary.  Let me link to this post.  <img src='http://www.ashishpaliwal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Heath</title>
		<link>http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/comment-page-1/#comment-5</link>
		<dc:creator>Mike Heath</dc:creator>
		<pubDate>Mon, 13 Oct 2008 20:22:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.ashishpaliwal.com/blog/?p=47#comment-5</guid>
		<description>I too would like to see a better comparison of the various NIO frameworks especially since this is such an interesting space to follow.

To add my $0.02:

Apache MINA - I&#039;m a contributor to this project so it is the framework I am most familiar with.  I would say that MINA is the easiest to use.  MINA certainly scales well but I wouldn&#039;t say that it performs well.  My own experiments show that Netty performs much better than MINA (especially for clients, more on this later) and scales just as well if not better than MINA.  Since Trustin left the MINA project to work on Netty, MINA development has slowed to a snail&#039;s pace.

xSockets - I have not used xSockets so I can&#039;t really comment.

Grizzly - Incredibly complicated.  It took me a long time to wrap my head around what each Grizzly component is doing and how to leverage it.  Grizzly 2.0 looks like it&#039;s getting easier to use and is starting to looking a little more like MINA/Netty.  This is a good thing, IMO.  Grizzly was obviously initially designed for building a web server so it lacks some of the flexibility you might get with MINA or Netty.  Performance has been Grizzly&#039;s strength.  Jean-francois Arcand has published multiple benchmarks showing how well Grizlly performs and scales doing HTTP.

Netty - In my opinion, Netty 3.0 has the most promise of the Java NIO frameworks.  It still doesn&#039;t have a GA release but the release candidates have so far been solid.  The Netty API is extremely flexible and a pleasure to use.  The API is slightly more complex than MINA but not by much.  The added flexibility of Netty makes up for the added complexity.  Additionally, the latest benchmarks on the Netty website seam to indicate the Netty is the new performance champion, https://www.jboss.org/netty/performance.html.

I have been using MINA and Netty 3.0 for my Asynchronous Database Connectivity in Java (ADBCJ) project, http://adbcj.org.  Netty is a far better option for building asynchronous clients.  In MINA, all sends happen in dedicated I/O threads.  In Netty, a send can happen in the calling thread if the write buffer is not full.  This feature alone improves performance of small sends dramatically (by more than 20% in many of my tests.)

I would love to see some MINA AsyncWeb (both NIO and APR), Grizzly, and Netty (once it gets an HTTP protocol handler) performance and scalability comparisons.  Maybe I should stop be lazy and do them myself. :)</description>
		<content:encoded><![CDATA[<p>I too would like to see a better comparison of the various NIO frameworks especially since this is such an interesting space to follow.</p>
<p>To add my $0.02:</p>
<p>Apache MINA &#8211; I&#8217;m a contributor to this project so it is the framework I am most familiar with.  I would say that MINA is the easiest to use.  MINA certainly scales well but I wouldn&#8217;t say that it performs well.  My own experiments show that Netty performs much better than MINA (especially for clients, more on this later) and scales just as well if not better than MINA.  Since Trustin left the MINA project to work on Netty, MINA development has slowed to a snail&#8217;s pace.</p>
<p>xSockets &#8211; I have not used xSockets so I can&#8217;t really comment.</p>
<p>Grizzly &#8211; Incredibly complicated.  It took me a long time to wrap my head around what each Grizzly component is doing and how to leverage it.  Grizzly 2.0 looks like it&#8217;s getting easier to use and is starting to looking a little more like MINA/Netty.  This is a good thing, IMO.  Grizzly was obviously initially designed for building a web server so it lacks some of the flexibility you might get with MINA or Netty.  Performance has been Grizzly&#8217;s strength.  Jean-francois Arcand has published multiple benchmarks showing how well Grizlly performs and scales doing HTTP.</p>
<p>Netty &#8211; In my opinion, Netty 3.0 has the most promise of the Java NIO frameworks.  It still doesn&#8217;t have a GA release but the release candidates have so far been solid.  The Netty API is extremely flexible and a pleasure to use.  The API is slightly more complex than MINA but not by much.  The added flexibility of Netty makes up for the added complexity.  Additionally, the latest benchmarks on the Netty website seam to indicate the Netty is the new performance champion, <a href="https://www.jboss.org/netty/performance.html" rel="nofollow">https://www.jboss.org/netty/performance.html</a>.</p>
<p>I have been using MINA and Netty 3.0 for my Asynchronous Database Connectivity in Java (ADBCJ) project, <a href="http://adbcj.org" rel="nofollow">http://adbcj.org</a>.  Netty is a far better option for building asynchronous clients.  In MINA, all sends happen in dedicated I/O threads.  In Netty, a send can happen in the calling thread if the write buffer is not full.  This feature alone improves performance of small sends dramatically (by more than 20% in many of my tests.)</p>
<p>I would love to see some MINA AsyncWeb (both NIO and APR), Grizzly, and Netty (once it gets an HTTP protocol handler) performance and scalability comparisons.  Maybe I should stop be lazy and do them myself. <img src='http://www.ashishpaliwal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vikram</title>
		<link>http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/comment-page-1/#comment-4</link>
		<dc:creator>Vikram</dc:creator>
		<pubDate>Mon, 13 Oct 2008 17:14:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.ashishpaliwal.com/blog/?p=47#comment-4</guid>
		<description>Please see the comparison of the NIO frameworks published by Trustin Lee (responsible for MINA and Netty) here http://gleamynode.net/articles/2232/performance-comparison-between-nio-frameworks

Vikram</description>
		<content:encoded><![CDATA[<p>Please see the comparison of the NIO frameworks published by Trustin Lee (responsible for MINA and Netty) here <a href="http://gleamynode.net/articles/2232/performance-comparison-between-nio-frameworks" rel="nofollow">http://gleamynode.net/articles/2232/performance-comparison-between-nio-frameworks</a></p>
<p>Vikram</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesper Nordenberg</title>
		<link>http://www.ashishpaliwal.com/blog/2008/10/nio-frameworks-in-java/comment-page-1/#comment-2</link>
		<dc:creator>Jesper Nordenberg</dc:creator>
		<pubDate>Mon, 13 Oct 2008 10:34:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.ashishpaliwal.com/blog/?p=47#comment-2</guid>
		<description>I would be very interested in a comparison between these libraries, as their functionality seem to be overlapping a lot. I&#039;m not interested in any standard protocol implementations as I will be writing a custom protocol, basically I just need easy-to-use, robust and fast sockets communication (TCP and possibly UDP).</description>
		<content:encoded><![CDATA[<p>I would be very interested in a comparison between these libraries, as their functionality seem to be overlapping a lot. I&#8217;m not interested in any standard protocol implementations as I will be writing a custom protocol, basically I just need easy-to-use, robust and fast sockets communication (TCP and possibly UDP).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
