The HTTP toolkit for Ruby
Failed to load latest commit information.
doc Add documentation start page Jul 21, 2014
examples examples: tidy up streaming example Nov 5, 2014
lib request: fix sequence numbering across clones Mar 11, 2015
spec specs: kill another deprecated should Mar 11, 2015
.gitignore Add task for updating HTML docs Jul 21, 2014
.rspec Remove fuubar formatter Jun 29, 2014
.travis.yml Update CI config Mar 11, 2015
.yardopts Include UNLICENSE in documentation Dec 8, 2013
Gemfile Remove Devtools Mar 11, 2015
httpkit.gemspec Remove Devtools Mar 11, 2015

The HTTP toolkit for Ruby

Build Status

HTTPkit is a Ruby library for HTTP networking and processing. It provides:

  • Server and client classes based on EventMachine and Fibers
  • Modular implementations of protocol semantics
  • Data structures for messages and entity bodies
  • Serializer and parser classes
  • Streaming of message bodies

It also offers:

  • Integration with other HTTP-related libraries like Webmachine and Rack
  • High-quality code with consistent APIs, aiming for 100% mutation coverage
  • Compatibility with MRI and Rubinius (MRuby is planned)
  • Free and unencumbered public domain software

Before v0.6.0, HTTPkit was called Hatetepe and then underwent a ground-up rewrite. Look at the 0.5.x branch for the old code.

Is it any good?



Add the gem to your project's bundle

$ echo "gem 'httpkit'" >> Gemfile
$ bundle

Or install it using RubyGems:

$ gem install httpkit


The website is in a sorry state at the moment. Please consult the code examples in examples/.

Code examples

API reference

To do



HTTPkit is free and unencumbered public domain software. For more information, see or the accompanying UNLICENSE file.


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request