Hello everyone,<div><br></div><div>Just a short introduction, I thought it would be a good idea to keep everyone (and the devs in particular) in the loop about what Netty is being used for in the wild. My name is Iain McGinniss, I currently work for <a href="http://onedrum.com">OneDrum</a> who are paying me to drive radical performance improvements in the <a href="http://jxta-jxse.dev.java.net/">JXTA-JXSE</a> project. JXTA-JXSE is a peer to peer application framework, essentially an overlay network with service discovery, fault tolerance and transport neutrality as core features.</div>
<div><br></div><div>Anyway, what am I using Netty for? My current goal is to optimise the transports that are used. My first target is to clean up the HTTP transport and the HTTP relay component, which is used to service peers behind restrictive firewall / NAT configurations that prevent them from directly participating in the main network. This relay is currently built on top of an ageing version of Jetty, and uses a slow, traditional HTTP polling mechanism resulting in a great deal of TCP/HTTP overhead to transfer messages. My hope is that by using Netty, I can:</div>
<div><br></div><div>1. Significantly reduce the IO overhead on the relays.</div><div>2. Get low level control over the HTTP stream, in order to build a full duplex, low overhead HTTP tunnel.</div><div>3. Do this in a way compatible with a variety of HTTP proxy and firewall configurations (both compliant and misbehaving).</div>
<div><br></div><div>So far, I'm quite impressed with what I've seen. I started with Grizzly, but it wasn't as well documented as I would have liked, after a lot of fumbling about trying to find out how to implement an HTTP client and server without using the servlet API (surplus to requirements, and expects a half-duplex request/response usage pattern) I lost patience and gave up on it. Meanwhile I'd seen Netty in my initial research, and spotted it's in-built HTTP tunnel. However I also saw a comment on this list about it potentially being buggy, so I've decided to build a new one from scratch.</div>
<div><br></div><div>No doubt I'm going to make a ton of mistakes as I find my way around the API, but I hope that within a week or so I'll have a pretty robust, well tested tunnel that I can contribute here, and hopefully after review and tweaks can be integrated into Netty. I will likely have questions as I go along, so I may poke my head up from time to time. If things go well, I would like to use Netty for all comms in JXSE, to clear out a lot of the legacy NIO code which is difficult to follow.</div>
<div><br></div><div>Thanks for your time,</div><div>Iain McGinniss</div>