Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Ruby bindings to Ryan Dahl's http-parser
C Java Ruby
Branch: master

This branch is 110 commits behind tmm1:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bench Remove trailing whitespace
ext/ruby_http_parser
lib
spec
.gitignore
.gitmodules
README.md
Rakefile
ruby_http_parser.gemspec

README.md

Ruby bindings to Ryan Dahl's http-parser

Ruby bindings to http://github.com/ry/http-parser

Overview

This gem aims to provide a simple Ruby HTTP parser API that can be used to build HTTP servers, clients and proxies. The gem will support all major Ruby platforms (JRuby, MRI 1.8 and 1.9, win32 and Rubinius).

Usage

require "http_parser"

parser = HTTP::Parser.new

parser.on_headers_complete = proc do |env|
  # Rack formatted env hash
  p env
end

parser.on_body = proc do |chunk|
  # One chunk of the body
  p chunk
end

parser.on_message_complete = proc do |env|
  # Headers and body is all parsed
  puts "Done!"
end

# Feed raw data from the socket to the parser
parser << raw_data
Something went wrong with that request. Please try again.