Working together on a generic Proxy, was: Netty 3.2.0.BETA1 released: zero-copy file transfer

Leandro Cruz leandro.saad at gmail.com
Tue Mar 9 14:38:21 EST 2010


Great.

I'm testing LittleProxy right now.

One of my goals is to not parse the entire message (not always). Most of the
time handling just the headers is okay (url/host blocking).
My current strategy is to save the original ChannelBuffer and write it as-is
to the new destination/connection, reducing I/O and memory allocation.

Other thing I was working on, and is implemented in Uxy (our generic proxy)
is IOC and DI using annotations. We have a really small container (GPL) that
starts the proxy and handles depency injection, configuration, component
lifecyle, etc. This approach works really nice and enables richer
customization of Uxy, since you can change any of the core components just
by changing the component impl in your config.
In LittleProxy case, I see many components that could be changed/replaced
according to your end user needs. For
instance: ProxyAuthorizationManager, HttpRequestMatcher, etc...

What do you think?

PS: we can move this discussion out of the list if it´s considered off
toppic

--
Leandro Rodrigo Saad Cruz


On Tue, Mar 9, 2010 at 5:36 AM, Adam Fisk <a at littleshoot.org> wrote:

> Happy to team up from my end. The LittleProxy code is all licensed
> under Apache 2 and is described at:
>
>
> http://dev.littleshoot.org:8084/display/proxy/LittleShoot+Java+HTTP+Proxy+-+LittleProxy
>
> I'm about to release the 0.3 version with much better performance,
> decompression and filtering of responses if desired, and better
> documentation. All the latest development is happening on trunk, and
> you should be able to run it really easily using the run.bash script.
>
> LittleProxy is very much focused on HTTP, but I'd certainly be open to
> supporting more protocols.
>
> All the Best,
>
> -Adam
>
>
> On Mon, Mar 8, 2010 at 12:10 PM, Leandro Cruz <leandro.saad at gmail.com>
> wrote:
> > Hi Adam, Trustin and others.
> > I thinks there is a growing interest in implementing proxies with Netty.
> > I'm working on a generic Proxy that should be able to filter http and im
> > traffic.
> > Do you think we could work together on a unified project/codebase?
> > Maybe our requirements are not equal, but I'm sure there is a lot of
> > commonality.
> > Please drop me a line if you are interested. I'm more than willing to
> share
> > my code (MSN protocol filter running with netty using IOC and DI) and
> have
> > more eyes on the project.
> > leandro.saad (at) gmail
> > --
> > Leandro Rodrigo Saad Cruz
> >
> >
> > On Sat, Mar 6, 2010 at 7:13 PM, Adam Fisk <a at littleshoot.org> wrote:
> >>
> >> Congrats on this, Trustin, especially the zero-copy transfers! The
> >> "Transfer-Encoding: chunked" semantics are working great on
> >> LittleProxy so far, and a new version should be coming out soon with
> >> the beta incorporated.
> >>
> >> Thanks for your hard work as always.
> >>
> >> -Adam
> >>
> >>
> >> On Fri, Mar 5, 2010 at 7:33 AM, jfarcand <jfarcand at ning.com> wrote:
> >> > Awesome work, Trustin!
> >> >
> >> > -- Jeanfrancois
> >> >
> >> > On 10-03-04 8:51 PM, "Trustin Lee (이희승)" wrote:
> >> >> Hi folks,
> >> >>
> >> >> Netty 3.2.0.BETA1, the first beta release in 3.2 branch, has been
> >> >> released after long awaits.
> >> >>
> >> >> The Netty project is an effort to provide an asynchronous,
> event-driven
> >> >> network application framework and tools for rapid development of
> >> >> maintainable, high-performance, high-scalability protocol servers and
> >> >> clients.
> >> >>
> >> >> In other words, Netty is an NIO client server framework that enables
> >> >> quick and easy development of network applications such as protocol
> >> >> servers and clients. It simplifies and streamlines network
> programming
> >> >> such as TCP and UDP socket servers
> >> >>
> >> >> Please visit our web site to get more information and download it.
> >> >>  Your
> >> >> feed back is more than appreciated - please visit the discussion
> forum
> >> >> and leave some comments and questions:
> >> >>
> >> >>    * http://www.jboss.org/netty/
> >> >>
> >> >> New Related Project: Ning's Asynchronous HTTP Client
> >> >> ====================================================
> >> >> Ning, one of the largest social platform provider, open-sourced their
> >> >> asynchronous HTTP client which uses Netty (and its HTTP codec) as its
> >> >> primary transport.  If you were using Netty directly to write an HTTP
> >> >> client, you might want to give this library a try because its API is
> >> >> very clean, simple and more HTTP-centric.
> >> >>
> >> >>    * announcement: http://is.gd/9ImoW
> >> >>    *  github repo: http://github.com/ning/async-http-client
> >> >>    * google group: http://groups.google.com/group/asynchttpclient
> >> >>
> >> >> Notable changes since 3.2.0.ALPHA4
> >> >> ==================================
> >> >>
> >> >>    * Zero-copy file transfer: http://is.gd/8Z7dI
> >> >>    * The number of I/O threads has been doubled for better out-of-
> >> >>      the-box performance.
> >> >>    * Fixed performance regression in the NIO transport
> >> >>    * SslHandler became more secure by disabling renegotiation by
> >> >> default.
> >> >>
> >> >> For the complete list of resolved issues, visit the issue tracker:
> >> >>
> >> >>    * http://is.gd/9InDn
> >> >>
> >> >> Notable changes since 3.1.5.GA
> >> >> ==============================
> >> >>
> >> >>    * Overall performance improvement in NIO transport
> >> >>
> >> >>    * @ChannelPipelineCoverage annotation has been deprecated by the
> >> >>      @Sharable annotation to reduce beginner confusion
> >> >>
> >> >>    * ChannelBuffer improvements
> >> >>      * New access methods for float, double, and char
> >> >>      * New method: ensureWritableBytes(int)
> >> >>      * New method: bytesBefore() for easier variable length string
> >> >> decode
> >> >>      * All string conversion methods now use Charset instead of
> String.
> >> >>
> >> >>    * Channel API improvements
> >> >>      * Zero-copy file transfer in NIO transport: http://is.gd/8Z7dI
> >> >>      * StaticChannelPipeline: an alternative pipeline implementation
> >> >>
> >> >>    * HTTP codec improvements
> >> >>      * WebSocket support
> >> >>      * Complete trailing header support
> >> >>      * More robust CookieDecoder
> >> >>      * More convenience methods in HttpMessage
> >> >>
> >> >>    * Zlib-based compression handlers
> >> >>    * RTSP codec
> >> >>
> >> >> For the full changelog, please visit the issue tracker:
> >> >>
> >> >>    * http://jira.jboss.org/jira/browse/NETTY
> >> >>
> >> >> Upcoming Releases
> >> >> =================
> >> >> Since the HTTP tunneling transport has been rescheduled to the next
> >> >> major feature release (3.3), all planned features have been
> >> >> implemented.
> >> >>   Unless there is a critical issue, I will proceed to release
> candidate
> >> >> phase.
> >> >>
> >> >> Although 3.2 has been feature-frozen, the road map for 3.3 release is
> >> >> wide open.  Please keep posting new ideas so that we can pick them up
> >> >> for 3.3.
> >> >>
> >> >> Cheers,
> >> >> Trustin
> >> >>
> >> >
> >> > _______________________________________________
> >> > netty-users mailing list
> >> > netty-users at lists.jboss.org
> >> > https://lists.jboss.org/mailman/listinfo/netty-users
> >>
> >>
> >>
> >> --
> >> Adam Fisk
> >> http://www.littleshoot.org | http://adamfisk.wordpress.com |
> >> http://twitter.com/adamfisk
> >>
> >> _______________________________________________
> >> netty-users mailing list
> >> netty-users at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/netty-users
> >
> > _______________________________________________
> > netty-users mailing list
> > netty-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/netty-users
> >
>
>
>
> --
> Adam Fisk
> http://www.littleshoot.org | http://adamfisk.wordpress.com |
> http://twitter.com/adamfisk
>
> _______________________________________________
> netty-users mailing list
> netty-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/netty-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/netty-users/attachments/20100309/1b70b804/attachment.html 


More information about the netty-users mailing list