Async (EventMachine) HTTP client, with support for:
- Asynchronous HTTP API for single & parallel request execution
 - Keep-Alive and HTTP pipelining support
 - Auto-follow 3xx redirects with max depth
 - Automatic gzip & deflate decoding
 - Streaming response processing
 - Streaming file uploads
 - HTTP proxy and SOCKS5 support
 - Basic Auth & OAuth
 - Connection-level & global middleware support
 - HTTP parser via http_parser.rb
 - Works wherever EventMachine runs: Rubinius, JRuby, MRI
 
gem install em-http-request
- Introductory screencast
 - Issuing GET/POST/etc requests
 - Issuing parallel requests with Multi interface
 - Handling Redirects & Timeouts
 - Keep-Alive and HTTP Pipelining
 - Stream processing responses & uploads
 - Issuing requests through HTTP & SOCKS5 proxies
 - Basic Auth & OAuth
 - GZIP & Deflate decoding
 - EM-HTTP Middleware
 
Several higher-order Ruby projects have incorporated em-http and other Ruby HTTP clients:
- EM-Synchrony - Collection of convenience classes and primitives to help untangle evented code (Ruby 1.9 + Fibers).
 - Rack-Client - Use Rack API for server, test, and client side. Supports Rack middleware!
 - Faraday - Modular HTTP client library using middleware heavily inspired by Rack.
 
- WebMock - Library for stubbing and setting expectations on HTTP requests in Ruby.
- Example of using WebMock, VCR & EM-HTTP
 
 
- VMWare CloudFoundry - The open platform-as-a-service project
 - PubSubHubbub - Asynchronous PubSubHubbub ruby client
 - em-net-http - Monkeypatching Net::HTTP to play ball with EventMachine
 - chirpstream - EM client for Twitters Chirpstream API
 - rsolr-async - An asynchronus connection adapter for RSolr
 - Firering - Eventmachine powered Campfire API
 - RDaneel - Ruby crawler which respects robots.txt
 - em-eventsource - EventSource client for EventMachine
 - and many others.. drop me a link if you want yours included!
 
(MIT License) - Copyright (c) 2011 Ilya Grigorik