0.02
Low commit activity in last 3 years
A long-lived project that still receives updates
A lite ruby wrapper around Joyent http-parser
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

HTTP Parser Lite

A Liteā„¢ wrapper around the Joyent http-parser goodness for Ruby

Install

gem install http-parser-lite

Example

parser = HTTP::Parser.new

parser.on_message_begin do
  puts "message begin"
end

parser.on_message_complete do
  puts "message complete"
end

parser.on_status_complete do
  puts "status complete"
end

parser.on_headers_complete do
  puts "headers complete"
end

parser.on_url do |url|
  puts "url: #{url}"
end

parser.on_header_field do |name|
  puts "field: #{name}"
end

parser.on_header_value do |value|
  puts "value: #{value}"
end

parser.on_body do |body|
  puts "body: #{body}"
end

parser << "HTTP/1.1 200 OK\r\n"
parser << "Content-Type: text/plain;charset=utf-8\r\n"
parser << "Content-Length: 5\r\n"
parser << "Connection: close\r\n\r\n"
parser << "hello"

parser.reset

parser << "GET http://www.google.com/ HTTP/1.1\r\n\r\n"

API

HTTP::Parser
    .new(type = HTTP::Parser::TYPE_BOTH)

    #reset(type = nil)
    #parse(data)
    #<<(data)

    #on_message_begin(&block)
    #on_message_complete(&block)
    #on_url(&block)
    #on_status_complete(&block)
    #on_header_field(&block)
    #on_header_value(&block)
    #on_headers_complete(&block)
    #on_body(&block)

    #http_status
    #http_method
    #http_version

    #pause
    #resume
    #paused?

    #error?
    #error

Constants:

* HTTP::Parser::TYPE_REQUEST
* HTTP::Parser::TYPE_RESPONSE
* HTTP::Parser::TYPE_BOTH

Exceptions:

* HTTP::Parser::Error

JRuby Support

Based on flyerhzm/http-parser.java, some code has been borrowed from http_parser.rb

License

MIT