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

State of Netty (2016)

9b123f408258511b201ca1230f260340?s=47 Trustin Lee
February 16, 2016

State of Netty (2016)

The slides for my talk at LINE Developer Meetup in Fukuoka on February 16, 2016

An older version with a video: https://speakerdeck.com/trustin/state-of-netty-2014

9b123f408258511b201ca1230f260340?s=128

Trustin Lee

February 16, 2016
Tweet

Transcript

  1. State of Netty @trustin @netty_project 16-Feb-2016

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

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

    29th in most starred Java · Android project 20th in most forked Java · Android project
  4. 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
  5. 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
  6. Since then … 3.0.0 in October 2008 HTTP WebSocket SPDY

    2 & 3 OpenSSL … 3.9.2 in June 2014
  7. 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
  8. 4.0 1 Event objects → Event methods Reference-counted buffers +

    pool Modularization Well-defined thread model Improved API user experience /dev/epoll · OpenSSL 1 https://blog.twitter.com/2013/netty-4-at-twitter-reduced-gc-overhead http://netty.io/wiki/new-and-noteworthy-in-4.0.html
  9. 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 Currently at release candidate - http://netty.io/wiki/new-and-noteworthy-in-4.1.html
  10. Are we there yet? “Hell no! :-)”

  11. Our mission … or ambition! “Opening the future of network

    programming”
  12. Beyond 4.1 Protocols - Redis · MySQL · PostgreSQL …

    kqueue · IOCP … Metrics Android testsuite Java 8 lambda friendliness Better user guide · Javadoc
  13. Beyond 4.1 (Cont’d) Accurate backpressure User-space TCP · UDP stack

    Non-blocking I/O friendly parser generator Investment in alternative system languages
  14. Thank you! netty.io