A summary of data about the Ruby ecosystem.

https://github.com/celluloid/celluloid-io

UNMAINTAINED: See celluloid/celluloid#779 - Evented sockets for Celluloid actors
https://github.com/celluloid/celluloid-io

Keywords from Contributors

activerecord rack activejob mvc rubygems background-jobs sidekiq jobs http-client sinatra

Last synced: about 13 hours ago
JSON representation

Repository metadata

UNMAINTAINED: See celluloid/celluloid#779 - Evented sockets for Celluloid actors

README.md

Celluloid::IO

Gem Version
MIT licensed
Build Status
Maintained: no

You don't have to choose between threaded and evented IO! Celluloid::IO
provides an event-driven IO system for building fast, scalable network
applications that integrates directly with the
Celluloid actor library, making it
easy to combine both threaded and evented concepts. Celluloid::IO is ideal for
servers which handle large numbers of mostly-idle connections, such as Websocket
servers or chat/messaging systems.

Celluloid::IO provides a different class of actor: one that's slightly slower
and heavier than standard Celluloid actors, but one which contains a
high-performance reactor just like EventMachine or Cool.io. This means
Celluloid::IO actors have the power of both Celluloid actors and evented
I/O loops. Unlike certain other evented I/O systems which limit you to a
single event loop per process, Celluloid::IO lets you make as many actors as
you want, system resources permitting.

Rather than callbacks, Celluloid::IO exposes a synchronous API built on duck
types of Ruby's own IO classes, such as TCPServer and TCPSocket. These classes
work identically to their core Ruby counterparts, but in the scope of
Celluloid::IO actors provide "evented" performance. Since they're drop-in
replacements for the standard classes, there's no need to rewrite every
library just to take advantage of Celluloid::IO's event loop and you can
freely switch between evented and blocking IO even over the lifetime of a
single connection.

Celluloid::IO uses the nio4r gem
to monitor IO objects, which provides cross-platform and cross-Ruby
implementation access to high-performance system calls such as epoll
and kqueue.

Like Celluloid::IO? Join the Celluloid Google Group

Documentation

Please see the Celluloid::IO Wiki
for more detailed documentation and usage notes.

YARD documentation
is also available

Installation

Add this line to your application's Gemfile:

gem 'celluloid-io'

And then execute:

$ bundle

Or install it yourself as:

$ gem install celluloid-io

Inside of your Ruby program, require Celluloid::IO with:

require 'celluloid/io'

Supported Platforms

Celluloid::IO works on all Ruby (MRI) versions between 1.9.3 & 2.3.1,
JRuby's 1.6.*, 1.7.* and 9.* series, and Rubinius' 2.* and 3.* series.

JRuby or Rubinius are the preferred platforms as they support true thread-level
parallelism when executing Ruby code, whereas MRI/YARV is constrained by a global
interpreter lock (GIL) and can only execute one thread at a time.

Celluloid::IO requires Ruby 1.9 mode on all interpreters, at minimum.

Contributing to Celluloid::IO

  • Fork this repository on github
  • Make your changes and send me a pull request
  • If I like them I'll merge them
  • If I've accepted a patch, feel free to ask for a commit bit!

License

Copyright (c) 2011-2016 Tony Arcieri. Distributed under the MIT License. See
LICENSE.txt for further details.

Contains code originally from the RubySpec project also under the MIT License.
Copyright (c) 2008 Engine Yard, Inc. All rights reserved.

Contains code originally from the 'OpenSSL for Ruby 2' project released under
the Ruby license. Copyright (C) 2001 GOTOU YUUZOU. All rights reserved.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 8 days ago

Total Commits: 380
Total Committers: 45
Avg Commits per committer: 8.444
Development Distribution Score (DDS): 0.408

Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0

Name Email Commits
Tony Arcieri t****i@g****m 225
//de de@f****k 27
Tim Carey-Smith t****m@s****n 20
//de c****e@e****l 19
Ben Langfeld b****n@l****e 9
Ryunosuke SATO t****s@g****m 8
Samuel Williams s****s@o****z 6
Derek Parker p****6@g****m 5
Tony Arcieri t****i@s****m 5
Hannes Georg h****g@x****m 5
//de d****t@g****m 5
Masahiro Fujiwara m****a@a****t 4
brainopia b****a@e****m 2
Tiago Cardoso t****o@r****m 2
Hendrik Beskow A****n 2
Tiago Cardoso t****o@s****m 2
Josh Adams j****h@i****m 2
Konstantin Makarchev k****7@g****m 2
Kyle Drake k****e@g****m 2
Kévin Sztern s****n@g****m 2
Patrik Wenger p****r@g****m 2
Autumn Perrault a****n@d****t 1
Zach Anker z****r@s****m 1
stopiccot a****k@g****m 1
henning mueller h****g@o****t 1
benlovell b****l@g****m 1
Wolfgang Teuber k****e@g****t 1
Tobias Bühlmann t****n@g****e 1
Steve Richert s****t@g****m 1
SAWADA Tadashi c****e@m****p 1
and 15 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 9 days ago

Total issues: 61
Total pull requests: 39
Average time to close issues: 5 months
Average time to close pull requests: 3 months
Total issue authors: 34
Total pull request authors: 18
Average comments per issue: 7.03
Average comments per pull request: 4.92
Merged pull request: 30
Bot issues: 0
Bot pull requests: 0

Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/celluloid/celluloid-io

Top Issue Authors

  • ioquatix (8)
  • HoneyryderChuck (8)
  • dblock (5)
  • digitalextremist (4)
  • tarcieri (3)
  • clonezone (3)
  • aronchick (2)
  • monolar (2)
  • ghost (1)
  • halorgium (1)
  • jeyraof (1)
  • jan (1)
  • pravi (1)
  • kamk (1)
  • myitcv (1)

Top Pull Request Authors

  • HoneyryderChuck (6)
  • digitalextremist (6)
  • hannesg (4)
  • tarcieri (4)
  • ioquatix (4)
  • e2 (2)
  • tricknotes (2)
  • davydovanton (1)
  • Tonkpils (1)
  • rjattrill (1)
  • knugie (1)
  • dblock (1)
  • zanker (1)
  • rimenes (1)
  • paddor (1)

Top Issue Labels

  • waiting/feedback (6)
  • bug (4)
  • refactor (2)
  • reproducible (1)

Top Pull Request Labels


Package metadata

gem.coop: celluloid-io

Evented IO for Celluloid actors

  • Homepage: http://github.com/celluloid/celluloid-io
  • Documentation: http://www.rubydoc.info/gems/celluloid-io/
  • Licenses: MIT
  • Latest release: 0.17.3 (published almost 10 years ago)
  • Last Synced: 2025-12-04T15:02:11.794Z (8 days ago)
  • Versions: 27
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 130,410,413 Total
  • Docker Downloads: 504,295
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Downloads: 0.178%
    • Average: 0.417%
    • Docker downloads count: 1.49%
  • Maintainers (2)
rubygems.org: celluloid-io

Evented IO for Celluloid actors

  • Homepage: http://github.com/celluloid/celluloid-io
  • Documentation: http://www.rubydoc.info/gems/celluloid-io/
  • Licenses: MIT
  • Latest release: 0.17.3 (published almost 10 years ago)
  • Last Synced: 2025-12-04T19:36:39.815Z (8 days ago)
  • Versions: 27
  • Dependent Packages: 118
  • Dependent Repositories: 5,913
  • Downloads: 130,412,050 Total
  • Docker Downloads: 504,295
  • Rankings:
    • Downloads: 0.135%
    • Dependent packages count: 0.285%
    • Dependent repos count: 0.416%
    • Average: 1.21%
    • Docker downloads count: 1.69%
    • Stargazers count: 1.993%
    • Forks count: 2.738%
  • Maintainers (2)
proxy.golang.org: github.com/celluloid/celluloid-io


Dependencies

Gemfile rubygems
  • benchmark-ips >= 0 development
  • coveralls >= 0.8 development
  • pry >= 0 development
  • rake >= 0 development
  • rspec ~> 3 development
  • rspec-retry ~> 0.5 development
  • rubocop = 0.45.0 development
celluloid-io.gemspec rubygems
  • nio4r >= 1.1

Score: 30.002241002111163