XNIO Project

Welcome to the XNIO project.

About the Project

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 such as serial ports, while still maintaining all the capabilities present in NIO. Also, 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.

Getting Involved If you wish to get involved as a developer in the XNIO project, join the #jboss channel on FreeNode IRC. Also, it is recommended you visit the JIRA pages to get a glimpse of the status or project tasks.
All of the developers on the XNIO project began as independent contributors to one JBoss project or another. JBoss core developers are guided by a meritocracy, and we hire talent anywhere in the world it may be.
Developers David M. Lloyd - Project Lead

XNIO 1.1.1.GA Released
Posted on Nov 12, 2008 7:39:00 PM by David M. Lloyd.

The release available on the downloads page . This is a bugfix release; I encourage all users of 1.1.0.GA to upgrade. Here's the list of changes: Fix a problem in the Xnio.create() method's default pr...

Binding to privileged ports with XNIO
Posted on Oct 23, 2008 11:58:00 AM by David M. Lloyd.

A couple random ideas about how to bind privileged (<1024) port numbers using XNIO. It might be possible to utilize the UNIX domain socket API (slated for 1.2.0) and use the file descriptor-passing me...

Minor XNIO re-org for 1.2.0
Posted on Oct 16, 2008 1:17:00 PM by David M. Lloyd.

For XNIO 1.2.0, I'm doing away with the separated API versus standalone JAR. My original notion was that the standalone JAR would contain the whole API, plus the Xnio bootstrapping class, plus at leas...

XNIO 1.1.0.GA Released
Posted on Oct 13, 2008 2:39:00 PM by David M. Lloyd.

XNIO 1.1.0.GA is available on the XNIO downloads page . Not much change since 1.1.0.CR1. Just a Javadoc update, and one interface rename: TcpClient has been renamed to TcpChannelSource (see XNIO-55 fo...

XNIO 1.1.0.CR1 Released
Posted on Oct 1, 2008 6:56:00 PM by David M. Lloyd.

As the title states - 1.1.0.CR1 is available at the XNIO project download page. The main list of changes: Added API support for creating one-way and two-way pipes. Improved separation of the NIO imple...

XNIO 1.0.0.GA Released
Posted on Jul 21, 2008 9:29:00 PM by David M. Lloyd.

The first GA release of XNIO is now available. There is only one substantial fix in this release. The standalone API did not present a way to close ChannelSource and Connector instances that were crea...

XNIO 1.0.0.CR3 Released
Posted on Jul 7, 2008 8:50:00 PM by David M. Lloyd.

Well, I lied. I've found a couple more minor API issues which I've fixed for CR3 - a misspelling in a method name ("interruptible", not "interruptable"), a typo which prevented junit from being downlo...

A modified approach to asynchronous reads
Posted on Jun 30, 2008 7:30:00 PM by David M. Lloyd.

In a previous post, I talked about the impracticality of asynchronous reads in a scalable server situation. The problem I cited was that if there are large amounts of pending reads, each with its own ...

XNIO 1.0.0.CR2 Released
Posted on Jun 23, 2008 8:55:00 PM by David M. Lloyd.

This new version fixes several problems in CR1 and is closer to a final product now. I do not anticipate any further API changes, so this version is safe to develop against in anticipation for the fin...

XNIO 1.0.0.CR1 Released
Posted on Jun 11, 2008 1:10:00 PM by David M. Lloyd.

I've released XNIO 1.0.0.CR1. XNIO is a replacement for NIO that vastly simplifies the handling of non-blocking I/O. XNIO gives you the full power of NIO channels while eliminating the headache of thr...