XNIO 2.0.0 has landed

XNIO is a simplified low-level I/O layer which can be used anywhere you are using NIO today. It frees you from the hassle of dealing with Selectors and NIO’s poor support for SSL, multicast sockets and non-socket I/O, while still maintaining all the capabilities present in NIO. The XNIO 2.0.0 release includes all of the features of the 1.x series, including:

  • API compatibility with NIO channels and APIs which consume them

  • Powerful callback-based API for channel status changes

  • Very simple API for data transfer on channels

  • Enhanced NIO buffer support, with many convenience methods to make traditionally difficult buffer manipulation tasks easier

  • TCP and UDP client and server support

  • API support for other socket types (such as UNIX domain sockets)

  • The ability to intermix blocking and non-blocking I/O operations freely and easily

  • JMX management for all channels

  • Powerful IoFutureinterface and support classes simplify asynchronous I/O operation support in XNIO as well as in your application

And these new features:

  • SSL channel types for easy SSL support - vastly simpler than the NIO-targeted SSLEngineAPI

  • New channel listener interface which makes implementing clients and servers even simpler

  • Runtime-switchable event listener registration for easy support of “state pattern”-based protocol implementations

  • Support for JMX-managed old-I/O SocketFactoryand ServerSocketFactoryinstances to retrofit legacy applications with management capabilities

  • Service location API which frees users from a compile-time dependency on an implementation JAR

  • A new User Guide

  • Simplified channel API makes custom channel implementation easy

  • Improved generic configuration API via immutable OptionMapclass

  • Improved API to allow user applications to easily provide IoFutureimplementations

  • Improved zero-copy integration with NIO’s FileChannel

  • And many more… The project page is at http://www.jboss.org/xnio. Download the release from the download page, or in the JBoss Maven repositoryunder the org.jboss.xniogroup ID. The documentation, including Javadoc and the user manual, are available on the docs page. Issues can be filed in the project’s JIRA bug tracker.

Written on November 25, 2009