Upgrade to Pro — share decks privately, control downloads, hide ads and more …

State of Netty (2014)

State of Netty (2014)

A newer version of this presentation is availablie:
https://speakerdeck.com/trustin/state-of-netty-2016

The slides for my talk at #NettyMeetup in Twitter HQ on July 28, 2014.

Video: http://www.youtube.com/watch?v=0aoeSsKarc8

Trustin Lee

July 28, 2014
Tweet

More Decks by Trustin Lee

Other Decks in Programming

Transcript

  1. Netty is … Java framework Simplifies socket client · server

    development Fast yet maintainable Asynchronous Event-driven
  2. Many organic. Very forks. Wow! 120+ people in repo history

    13th in most starred Java project 11th in most forked Java project
  3. What do people use it for? 1 Web services Instant

    messaging Multiplayer games Storage · Database High frequency trading Media streaming 1 http://netty.io/wiki/adopters.html http://netty.io/testimonials
  4. Long history short 2001.12.16. First release 1 2004.06.07. Major revision

    2 2004.09.28. Moving effort to Apache MINA 3 2006.10.27. Apache MINA becomes a TLP 4 2008.06.11. Moving effort back again 5 1 http://t.motd.kr/ko/archives/1930 2 http://www.theserverside.com/news/thread.tss?thread_id=26416 3 http://t.motd.kr/ko/archives/1693 4 http://t.motd.kr/ko/archives/1560 5 http://t.motd.kr/ko/archives/1502
  5. Since then … 3.0.0 in October 2008 HTTP WebSocket SPDY

    2 & 3 OpenSSL … 3.9.2 in June 2014
  6. What we learned in 3 Object allocations are expensive. Memory

    bandwidth Small garbage is garbage anyway. Some constructs are generally useful. Byte buffers Listenable futures Ill-defined thread model is painful. SSL handler
  7. 4.0 1 Event objects → Event methods Reference-counted buffers +

    pool Modularization Well-defined thread model Improved API user experience Native transport for Linux 1 https://blog.twitter.com/2013/netty-4-at-twitter-reduced-gc-overhead http://netty.io/wiki/new-and-noteworthy-in-4.0.html
  8. 4.1 1 Protocols - Memcache · DNS · MQTT ·

    STOMP · HAProxy Streamed XML · JSON Asynchronous DNS lookup SOCKS · HTTP proxy support More flexible thread model Android support 1 http://netty.io/wiki/new-and-noteworthy-in-4.1.html
  9. 5.0 and research topics 64-bit buffer addressing Even more flexible

    thread model More accurate backpressure User-space TCP · UDP stack Non-blocking I/O friendly parser generator Investment on alternative system languages
  10. It’s never too late! Immediate impact Java 8 lambda friendliness

    More protocols More native transports Android testsuite Better user guide · Javadoc Case studies · White papers · Blog posts