HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
rkh
async-rack
Ruby2010–2010
rkh / async-rack

async-rack

Makes middleware that ships with Rack bullet-proof for async responses.

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

What to know before exploring

What it is

Makes middleware that ships with Rack bullet-proof for async responses.

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

No other repository is repeatedly linked in the same discussions.

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:03:16 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: 2010-03-09 00:24:45 UTC to 2010-06-07 19:55:22 UTC. Weeks start Monday, UTC.

012010-03-08 00:00:00 UTC to 2010-03-15 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsMar 82010-03-15 00:00:00 UTC to 2010-03-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-03-22 00:00:00 UTC to 2010-03-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-03-29 00:00:00 UTC to 2010-04-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-04-05 00:00:00 UTC to 2010-04-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-04-12 00:00:00 UTC to 2010-04-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-04-19 00:00:00 UTC to 2010-04-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsApr 192010-04-26 00:00:00 UTC to 2010-05-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-05-03 00:00:00 UTC to 2010-05-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-05-10 00:00:00 UTC to 2010-05-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-05-17 00:00:00 UTC to 2010-05-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-05-24 00:00:00 UTC to 2010-05-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-05-31 00:00:00 UTC to 2010-06-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-06-07 00:00:00 UTC to 2010-06-14 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 7

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 82010-03-08 00:00:00 UTC2010-03-15 00:00:00 UTC110
Mar 152010-03-15 00:00:00 UTC2010-03-22 00:00:00 UTC000
Mar 222010-03-22 00:00:00 UTC2010-03-29 00:00:00 UTC000
Mar 292010-03-29 00:00:00 UTC2010-04-05 00:00:00 UTC000
Apr 52010-04-05 00:00:00 UTC2010-04-12 00:00:00 UTC000
Apr 122010-04-12 00:00:00 UTC2010-04-19 00:00:00 UTC000
Apr 192010-04-19 00:00:00 UTC2010-04-26 00:00:00 UTC000
Apr 262010-04-26 00:00:00 UTC2010-05-03 00:00:00 UTC000
May 32010-05-03 00:00:00 UTC2010-05-10 00:00:00 UTC000
May 102010-05-10 00:00:00 UTC2010-05-17 00:00:00 UTC000
May 172010-05-17 00:00:00 UTC2010-05-24 00:00:00 UTC000
May 242010-05-24 00:00:00 UTC2010-05-31 00:00:00 UTC000
May 312010-05-31 00:00:00 UTC2010-06-07 00:00:00 UTC000
Jun 72010-06-07 00:00:00 UTC2010-06-14 00:00:00 UTC101

What Hacker News says

2 sources
I didn't go with Rails 3, I like to keep at least a minor version behind so I don't have to deal with framework bugs in production :-p In my case the performance issues really have nothing to do with Rails and everything to do with blocking I/O. Rails 3 and Ruby 1.9 may be faster, but that doesn't help you at all if you do something like this: class ExampleController < ActionController::Base def index sleep(1) # contrived example, imagine a slow API call here render :text => "Completed!" end end Because Rails is setup to be run in a blocking fashion my example will only be able to serve 1 request per second. The fix here is non-blocking languages (like Node.js) or programming in an event-driven fashion (by using EventMachine or the like). For example (in pseudocode): when( request.received ) do register slow
Read the rest
_api_request, :callback => :answer end def answer do response.send( api_result ) end Ideally the framework should do this by itself. Standard libraries that are blocking, like Net:Http, should continue to appear to the developer like they are blocking, but in reality would pass back control to other instructions while they're just sitting around waiting for the remote server to respond. This is totally possible, and getting more feasible by the day. Thin (the application server) and Rack both allow applications to run asynchronously, Neverblock provides a cleaner way for providing pools of Ruby Fibers to an application to allow implicit scheduling, in time Rails will hopefully build upon this. I've spent several hours this morning doing research into how I can fix this problem for my application, some of the stuff I've dug-up is here: http://github.com/igrigorik/em-http-request http://github.com/rkh/async-rack http://www.espace.com.eg/neverblock/ http://macournoyer.com/blog/2009/06/04/pusher-and-async-with-thin/ It looks like the solution in my case is going to be something like creating a Rails Metal endpoint for Rack, that completes the Net:Http requests using em-http-request. I'm not sure that this is actually possible yet, but it'll be something close to that.
In Rails Performance Needs an Overhaul

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.