A summary of data about the Ruby ecosystem.

https://github.com/socketry/nio4r

Cross-platform asynchronous I/O primitives for scalable network clients and servers.
https://github.com/socketry/nio4r

Keywords from Contributors

rubygems rack mvc activerecord activejob multithreading json-parser ruby-gem xslt xerces

Last synced: about 17 hours ago
JSON representation

Repository metadata

Cross-platform asynchronous I/O primitives for scalable network clients and servers.

readme.md

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

  • ActionCable: Rails 5 WebSocket protocol, uses nio4r for a WebSocket server
  • Celluloid: Actor-based concurrency framework, uses nio4r for async I/O
  • Async: Asynchronous I/O framework for Ruby
  • Puma: Ruby/Rack web server built for concurrency

Goals

  • Expose high-level interfaces for stateful IO selectors
  • Keep the API small to maximize both portability and performance across many
    different OSes and Ruby VMs
  • Provide inherently thread-safe facilities for working with IO objects

Supported platforms

Supported backends

  • libev: MRI C extension targeting multiple native IO selector APIs (e.g epoll, kqueue)
  • Java NIO: JRuby extension which wraps the Java NIO subsystem
  • Pure Ruby: Kernel.select-based backend that should work on any Ruby interpreter

Documentation

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

  • Getting Started: Introduction to nio4r's components
  • Selectors: monitor multiple IO objects for readiness events
  • Monitors: control interests and inspect readiness for specific IO objects
  • Byte Buffers: fixed-size native buffers for high-performance I/O

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

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 3 days ago

Total Commits: 665
Total Committers: 57
Avg Commits per committer: 11.667
Development Distribution Score (DDS): 0.429

Commits in past year: 3
Committers in past year: 2
Avg Commits per committer in past year: 1.5
Development Distribution Score (DDS) in past year: 0.333

Name Email Commits
Tony Arcieri t****i@g****m 380
Samuel Williams s****s@o****z 111
Olle Jonsson o****n@g****m 20
Gregory Longtin G****s@g****m 18
Joao Fernandes j****o@h****o 10
Thomas Dziedzic t****0@g****m 9
Boaz Segev bo@b****m 8
Logan Bowers l****n@d****m 8
Tiago Cardoso t****o@r****m 7
Pedro Paiva p****a@g****m 7
Omer Katz o****w@g****m 6
Jun Aruga j****a@r****m 6
Tiago Cardoso t****o@s****m 4
Tiago Cardoso c****o@h****m 4
Tim Carey-Smith t****m@s****n 4
Upekshe Jayasekera u****0@g****m 4
Benoit Daloze e****p@g****m 3
Sergey Avseyev s****v@g****m 3
Tomoya Ishida t****n@g****m 3
Daniel Berger d****6@g****m 2
Dirkjan Bussink d****k@g****m 2
Hiroshi Shibata s****i@g****m 2
Luis Lavena l****a@g****m 2
Sadayuki Furuhashi f****i@u****p 2
Stephen von Takach s****e@a****u 2
Usaku Nakamura u****a@g****p 2
Vít Ondruch v****h@t****z 2
Pavel Rosický p****y@e****z 2
Jesús Burgos Maciá J****s 2
Cédric Boutillier b****l@d****g 2
and 27 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 22 days ago

Total issues: 65
Total pull requests: 68
Average time to close issues: 7 months
Average time to close pull requests: 30 days
Total issue authors: 50
Total pull request authors: 29
Average comments per issue: 6.2
Average comments per pull request: 2.31
Merged pull request: 56
Bot issues: 0
Bot pull requests: 0

Past year issues: 3
Past year pull requests: 3
Past year average time to close issues: about 15 hours
Past year average time to close pull requests: 1 day
Past year issue authors: 3
Past year pull request authors: 3
Past year average comments per issue: 1.33
Past year average comments per pull request: 0.33
Past year merged pull request: 1
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/socketry/nio4r

Top Issue Authors

  • ioquatix (9)
  • MSP-Greg (4)
  • djberg96 (2)
  • jasl (2)
  • ShockwaveNN (2)
  • HoneyryderChuck (2)
  • dov (1)
  • obfuscoder (1)
  • solidiquis (1)
  • aogata-inst (1)
  • bluz71 (1)
  • senolfeldmann (1)
  • gregclar (1)
  • jsvd (1)
  • av-emil (1)

Top Pull Request Authors

  • ioquatix (11)
  • MSP-Greg (8)
  • boazsegev (6)
  • mohamedhafez (4)
  • Jesus (4)
  • ahorek (4)
  • jcmfernandes (4)
  • voxik (3)
  • olleolleolle (3)
  • enebo (2)
  • jmartin-r7 (1)
  • tsimnujhawj (1)
  • orhantoy (1)
  • iterateNZ (1)
  • jaredbeck (1)

Top Issue Labels

  • JRuby (1)

Top Pull Request Labels


Package metadata

gem.coop: nio4r

New IO for Ruby

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: http://www.rubydoc.info/gems/nio4r/
  • Licenses: MIT,BSD-2-Clause
  • Latest release: 2.7.5 (published 7 months ago)
  • Last Synced: 2026-05-20T14:52:18.609Z (4 days ago)
  • Versions: 95
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 638,101,006 Total
  • Docker Downloads: 2,059,386,557
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 0.012%
    • Downloads: 0.037%
  • Maintainers (2)
  • Funding:
    • https://github.com/sponsors/ioquatix/
rubygems.org: nio4r

New IO for Ruby

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: http://www.rubydoc.info/gems/nio4r/
  • Licenses: MIT,BSD-2-Clause
  • Latest release: 2.7.5 (published 7 months ago)
  • Last Synced: 2026-05-19T23:00:47.126Z (5 days ago)
  • Versions: 95
  • Dependent Packages: 51
  • Dependent Repositories: 380,002
  • Downloads: 637,756,687 Total
  • Docker Downloads: 2,059,386,557
  • Rankings:
    • Downloads: 0.04%
    • Dependent repos count: 0.05%
    • Docker downloads count: 0.063%
    • Dependent packages count: 0.53%
    • Average: 0.903%
    • Stargazers count: 1.939%
    • Forks count: 2.799%
  • Maintainers (2)
  • Funding:
    • https://github.com/sponsors/ioquatix/
proxy.golang.org: github.com/socketry/nio4r

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/socketry/nio4r#section-documentation
  • Licenses: other
  • Latest release: v2.7.5+incompatible (published 7 months ago)
  • Last Synced: 2026-05-19T03:01:57.046Z (6 days ago)
  • Versions: 48
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 9.56%
    • Average: 10.169%
    • Dependent repos count: 10.779%
gem.coop: ed-precompiled_nio4r

New IO for Ruby

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: http://www.rubydoc.info/gems/ed-precompiled_nio4r/
  • Licenses: MIT,BSD-2-Clause
  • Latest release: 2.7.4 (published 7 months ago)
  • Last Synced: 2026-05-19T03:01:56.700Z (6 days ago)
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,113 Total
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Stargazers count: 2.02%
    • Forks count: 2.833%
    • Average: 20.968%
    • Downloads: 99.985%
  • Maintainers (1)
  • Funding:
    • https://github.com/sponsors/ioquatix/
conda-forge.org: rb-nio4r

  • Homepage: https://rubygems.org/gems/nio4r
  • Licenses: MIT
  • Latest release: 2.5.2 (published over 6 years ago)
  • Last Synced: 2026-04-01T01:59:22.251Z (about 2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Stargazers count: 11.834%
    • Forks count: 18.837%
    • Average: 28.968%
    • Dependent repos count: 34.025%
    • Dependent packages count: 51.175%
rubygems.org: ed-precompiled_nio4r

New IO for Ruby

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: http://www.rubydoc.info/gems/ed-precompiled_nio4r/
  • Licenses: MIT,BSD-2-Clause
  • Latest release: 2.7.4 (published 7 months ago)
  • Last Synced: 2026-05-19T03:01:54.619Z (6 days ago)
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,113 Total
  • Rankings:
    • Dependent packages count: 14.23%
    • Dependent repos count: 43.588%
    • Average: 50.151%
    • Downloads: 92.636%
  • Maintainers (1)
  • Funding:
    • https://github.com/sponsors/ioquatix/
ubuntu-23.04: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Licenses:
  • Latest release: 2.5.8-2build2 (published 3 months ago)
  • Last Synced: 2026-03-12T13:17:42.821Z (2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
debian-13: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: https://packages.debian.org/trixie/ruby-nio4r
  • Licenses:
  • Latest release: 2.7.3-1 (published 3 months ago)
  • Last Synced: 2026-03-14T18:10:00.211Z (2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
guix: ruby-nio4r

New I/O for Ruby

ubuntu-22.04: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Licenses:
  • Latest release: 2.5.8-2 (published 3 months ago)
  • Last Synced: 2026-03-13T22:39:16.099Z (2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
ubuntu-24.04: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Licenses:
  • Latest release: 2.5.8-4build2 (published 4 months ago)
  • Last Synced: 2026-03-05T11:21:59.887Z (3 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
debian-11: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: https://packages.debian.org/bullseye/ruby-nio4r
  • Licenses:
  • Latest release: 2.3.1-2 (published 3 months ago)
  • Last Synced: 2026-03-14T07:16:42.793Z (2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
ubuntu-23.10: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Licenses:
  • Latest release: 2.5.8-3 (published 3 months ago)
  • Last Synced: 2026-03-09T21:03:22.019Z (3 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
ubuntu-24.10: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Licenses:
  • Latest release: 2.7.3-1build1 (published 4 months ago)
  • Last Synced: 2026-03-08T07:36:54.031Z (3 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
ubuntu-20.04: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Licenses:
  • Latest release: 2.3.1-1build1 (published 3 months ago)
  • Last Synced: 2026-03-13T14:24:09.405Z (2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
debian-12: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: https://packages.debian.org/bookworm/ruby-nio4r
  • Licenses:
  • Latest release: 2.5.8-3 (published 3 months ago)
  • Last Synced: 2026-03-13T23:44:58.344Z (2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
debian-10: ruby-nio4r

  • Homepage: https://github.com/socketry/nio4r
  • Documentation: https://packages.debian.org/buster/ruby-nio4r
  • Licenses:
  • Latest release: 2.3.1-1 (published 3 months ago)
  • Last Synced: 2026-03-13T19:04:51.892Z (2 months ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%

Dependencies

nio4r.gemspec rubygems
  • bundler >= 0 development
  • rake >= 0 development
.github/workflows/test.yaml actions
  • actions/checkout v3 composite
  • ruby/setup-ruby v1 composite
gems.rb rubygems
  • rake-compiler ~> 1.2 development
  • rspec ~> 3.7 development
  • rubocop = 0.82.0 development
  • bake >= 0
  • bake-gem >= 0
  • bake-modernize >= 0
  • rake >= 0

Score: 33.351515804469315