Crate http_parser [] [src]

The Rust HTTP Parser

The Rust HTTP Parser provides the functionality to parse both HTTP requests and responses.

It is ported from joyent/http-parser written in C.

Install

Add http_parser to Cargo.toml:

[dependencies]
http_parser = "0.0.2"

Usage

Define a callback struct:

struct Callback;

impl HttpParserCallback for Callback {
    fn on_message_begin(&mut self, parser: &mut HttpParser) -> CallbackResult {
        println!("Message begin");
        Ok(ParseAction::None)
    }

    // Override other functions as you wish
}

Create an instance of HttpParser for requests:

let mut parser = HttpParser::new(HttpParserType::Request);

Create an instance of Callback struct:

let mut cb = Callback;

Execute the parser by providing a HTTP request:

let line: &str = "GET / HTTP/1.1\r\n";
parser.execute(&mut cb, line.as_bytes());

Structs

HttpParser

The HTTP parser that parses requests and responses.

HttpVersion

HTTP protocol version.

Enums

HttpErrno

HttpErrno defines the encountered error during parsing.

HttpMethod

HttpMethod defines supported HTTP methods.

HttpParserType

HttpParserType is a type specifies whether the parser is going to parse a HTTP request, response or both.

ParseAction

ParseAction defines the potential actions that could be returned by any callback function. The parser uses it to determine consequent behavior.

Traits

HttpParserCallback

It defines the callback functions that would be called by parser.

Type Definitions

CallbackResult

Result of a callback function.