123456789_123456789_123456789_123456789_123456789_

nio4r

Development Status

New I/O for Ruby (nio4r): cross-platform asynchronous I/O primitives for scalable network clients and servers. Modeled after the Java NIO API, but simplified for ease-of-use.

nio4r provides an abstract, cross-platform stateful I/O selector API for Ruby. I/O selectors are the heart of "reactor"-based event loops, and monitor multiple I/O objects for various types of readiness, e.g. ready for reading or writing.

Projects using nio4r

Goals

Supported platforms

Supported backends

Documentation

Please see the nio4r wiki for more detailed documentation and usage notes:

See also:

Non-goals

nio4r is not a full-featured event framework like EventMachine or Cool.io. Instead, nio4r is the sort of thing you might write a library like that on top of. nio4r provides a minimal API such that individual Ruby implementers may choose to produce optimized versions for their platform, without having to maintain a large codebase.

Releases

Bump the version first:

bundle exec bake gem:release:version:patch

CRuby

rake clean
rake release

JRuby

You might need to delete Gemfile.lock before trying to bundle install.

# Ensure you have the correct JDK:
pacman -Syu jdk-openjdk
archlinux-java set java-19-openjdk

# Ensure you are using jruby:
chruby jruby
bundle update

# Build the package:
rake clean
rake compile
rake release