A new approach to I/O
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 the lack of NIO support for multicast sockets and non-socket I/O, while still maintaining all the capabilities present in NIO.
XNIO provides a unique and easy-to-use API for combining blocking and non-blocking operations, even on the same channel, allowing you to take advantage of the simplicity and low latency of blocking I/O while still gaining the thread-conservative benefits of non-blocking I/O.
XNIO vastly simplifies implementation of channels, opening the door to supporting higer-level transport concepts (like SSL or virtual channels) with the same simple API.
XNIO also introduces a powerful callback-based interface which can greatly simplify traditional state machine-based non-blocking applications, as well as allowing you to hit the perfect balance between throughput and latency for your application.
News
- XNIO 2.0.2 Bugfix Release
- Jan 25, 2010 3:21 PM by David M. Lloyd
- A new release of XNIO is available which fixes several bugs. For more information about XNIO 2.0, see this previous post. Users of XNIO 2.0.0 and 2.0.1 are encouraged to update to 2.0.2 to take advantage of these bug fixes:
- [XNIO-82] - Remove jboss-classloading.xml from artifact
- [XNIO-83] - Getting an option from a string fails due to typo
- [XNIO-84] - Enable all supported SSL cipher suites if none are explicitly enabled
- [XNIO-85] - Possible deadlock in SSL negotiation phase
- [XNIO-86] - CCE produced when casting a null option value
- [XNIO-87] - XNIO log messages don't preserve the source class/method name
- [XNIO-88] - Open listener specification is now optional; do not throw NPE if it is not provided
- XNIO 2.0.1 Bugfix Release
- Dec 4, 2009 1:44 PM by David M. Lloyd
- I've uploaded a minor bugfix release for XNIO 2.0.0. It fixes a selector wakeup bug, as well as a minor API bug and a minor optimization for blocking I/O with the NIO-based provider.
All users of 2.0.0 are encouraged to update to 2.0.1. The release is available on the download page.
- XNIO 2.0.0 has landed
- Nov 25, 2009 5:58 PM by David M. Lloyd
- 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
- 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
SocketFactoryandServerSocketFactoryinstances 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...
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.
- View more news