HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
celluloid
celluloid-io
Ruby2014–2014
celluloid / celluloid-io · Archived

celluloid-io

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

2Distinct people
2Mentions
0Explicit recommenders
872GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

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

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week2 dated mentions

Observed mentions: 2014-03-14 20:44:45 UTC to 2014-09-16 22:58:11 UTC. Weeks start Monday, UTC.

012014-03-10 00:00:00 UTC to 2014-03-17 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 102014-03-17 00:00:00 UTC to 2014-03-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-24 00:00:00 UTC to 2014-03-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-31 00:00:00 UTC to 2014-04-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-07 00:00:00 UTC to 2014-04-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-14 00:00:00 UTC to 2014-04-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-21 00:00:00 UTC to 2014-04-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-28 00:00:00 UTC to 2014-05-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-05 00:00:00 UTC to 2014-05-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-12 00:00:00 UTC to 2014-05-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-19 00:00:00 UTC to 2014-05-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-26 00:00:00 UTC to 2014-06-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-02 00:00:00 UTC to 2014-06-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-09 00:00:00 UTC to 2014-06-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJun 92014-06-16 00:00:00 UTC to 2014-06-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-23 00:00:00 UTC to 2014-06-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-30 00:00:00 UTC to 2014-07-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-07 00:00:00 UTC to 2014-07-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-14 00:00:00 UTC to 2014-07-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-21 00:00:00 UTC to 2014-07-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-28 00:00:00 UTC to 2014-08-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-04 00:00:00 UTC to 2014-08-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-11 00:00:00 UTC to 2014-08-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-18 00:00:00 UTC to 2014-08-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-25 00:00:00 UTC to 2014-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-09-01 00:00:00 UTC to 2014-09-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-09-08 00:00:00 UTC to 2014-09-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-09-15 00:00:00 UTC to 2014-09-22 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 15

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Mar 102014-03-10 00:00:00 UTC2014-03-17 00:00:00 UTC101
Mar 172014-03-17 00:00:00 UTC2014-03-24 00:00:00 UTC000
Mar 242014-03-24 00:00:00 UTC2014-03-31 00:00:00 UTC000
Mar 312014-03-31 00:00:00 UTC2014-04-07 00:00:00 UTC000
Apr 72014-04-07 00:00:00 UTC2014-04-14 00:00:00 UTC000
Apr 142014-04-14 00:00:00 UTC2014-04-21 00:00:00 UTC000
Apr 212014-04-21 00:00:00 UTC2014-04-28 00:00:00 UTC000
Apr 282014-04-28 00:00:00 UTC2014-05-05 00:00:00 UTC000
May 52014-05-05 00:00:00 UTC2014-05-12 00:00:00 UTC000
May 122014-05-12 00:00:00 UTC2014-05-19 00:00:00 UTC000
May 192014-05-19 00:00:00 UTC2014-05-26 00:00:00 UTC000
May 262014-05-26 00:00:00 UTC2014-06-02 00:00:00 UTC000
Jun 22014-06-02 00:00:00 UTC2014-06-09 00:00:00 UTC000
Jun 92014-06-09 00:00:00 UTC2014-06-16 00:00:00 UTC000
Jun 162014-06-16 00:00:00 UTC2014-06-23 00:00:00 UTC000
Jun 232014-06-23 00:00:00 UTC2014-06-30 00:00:00 UTC000
Jun 302014-06-30 00:00:00 UTC2014-07-07 00:00:00 UTC000
Jul 72014-07-07 00:00:00 UTC2014-07-14 00:00:00 UTC000
Jul 142014-07-14 00:00:00 UTC2014-07-21 00:00:00 UTC000
Jul 212014-07-21 00:00:00 UTC2014-07-28 00:00:00 UTC000
Jul 282014-07-28 00:00:00 UTC2014-08-04 00:00:00 UTC000
Aug 42014-08-04 00:00:00 UTC2014-08-11 00:00:00 UTC000
Aug 112014-08-11 00:00:00 UTC2014-08-18 00:00:00 UTC000
Aug 182014-08-18 00:00:00 UTC2014-08-25 00:00:00 UTC000
Aug 252014-08-25 00:00:00 UTC2014-09-01 00:00:00 UTC000
Sep 12014-09-01 00:00:00 UTC2014-09-08 00:00:00 UTC000
Sep 82014-09-08 00:00:00 UTC2014-09-15 00:00:00 UTC000
Sep 152014-09-15 00:00:00 UTC2014-09-22 00:00:00 UTC101

What Hacker News says

2 sources
You have an issue right now. By running EventMachine, you are blocking Ruby's ability to do concurrent IO using Thread, which means that you've reduced the entire ruby infrastructure (except the EM async code style that nobody programs for anymore) to a single blocking IO thread, dependent on 10-15k+ lines of awful C code that haven't been under active development in over four years, which breaks the premise of ruby's synchronous development methodology, is extremely difficult to debug, and which everyone agrees (including the maintainers) needs to be obsoleted. Indeed, there are a few maintainers on EM, for the sole purpose of preventing it from breaking every single time the ruby team releases an update, because if it broke, it would cause a problem with legacy code in the ruby space. If the EM maintainers walked away, Coinbase would be
Read the rest
stuck on an old version of ruby until they themselves patched EM to solve it. EventMachine is not something people should be basing new projects on, especially projects that involve money. Tony Arcieri wrote nio4r (https://github.com/celluloid/nio4r), which solves this problem in a far better way, and then used it to implement cellluloid-io (https://github.com/celluloid/celluloid-io), which doesn't choke ruby's ability to do concurrent IO using it's internal threading mechanism. Combined with JRuby, you get even more than concurrent IO here like with MRI, you can also get real threading, which is important in a space where CPUs aren't getting faster, they're getting more parallel. Node.js has the same problem, but unlike Ruby/EM, JavaScript is actually designed to be async, so at least everything is designed to expect it. Because Sinatra (like all non-EM ruby code) uses the threading style for concurrency, as soon as you start running EventMachine, everything will block for a single request, even if it's slow IO bound. You can demonstrate this very easily by putting this into the code: get '/blocking' do sleep(10) end get '/notblocking' do 'ok' end Hit /blocking with curl, and then hit /nonblocking with a second curl command. The second request is blocked until the first one completes. Now try the same thing without eventmachine, and it serves the second request concurrently without a problem. That's what you lose in this exchange, and it's a big thing to lose. I'm using sleep here, but the same blocking will occur for database queries, remote cache hits, HTTPS requests (to get things like, say, the exchange rate), everything involving IO. The only way to get around this problem and still use ruby synchronously is to resort to crazy hacks, including a fairly popular project I created a while ago called sinatra-synchrony (https://github.com/kyledrake/sinatra-synchrony), which wraps async code using fibers. But in order for that to work, every library you're using has to support it, so this path would require a massive refactor of the entire ruby ecosystem, and that's simply not going to happen. It's also incredibly difficult to debug, and there's a lot of bugs with EM - sometimes things would just lock up or segfault, or ruby would spit out an error stack that had nothing to do with the actual exception that occurred. I tried very politely to explain this problem to Coinbase about two years ago during an interview, and their reaction was to ask about my college degree, give me a bunch of weird whiteboard problems that had nothing to do with actual programming, and then show me the door, one day after I helped fix all of their client libraries when they switched SSL CA providers and didn't even realize it, and then provided a pull request to coinbase-ruby providing concurrency support using this very same threading mechanism, on the two-hour flight there (proof: https://github.com/coinbase/coinbase-ruby/pull/6)
In Toshi – An Open Source Bitcoin Node for Developers

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.