3d0f423eb26c4f14aaf9f8a909b307f661a3c5d6
				
			
			
		
	If a client sent an illegal request (like a GET request with a message body), or if there was a legal request with a body but the Handler didn't read all of it, the remaining bytes would be left in the stream. The next request to come from the same client would error, as the server would confuse the remaining bytes, and think the request was malformed. Fixes #197 Fixes #309
hyper
A Modern HTTP library for Rust.
Overview
Hyper is a fast, modern HTTP implementation written in and for Rust. It is a low-level typesafe abstraction over raw HTTP, providing an elegant layer over "stringly-typed" HTTP.
Hyper offers both an HTTP/S client and HTTP server which can be used to drive complex web applications written entirely in Rust.
The documentation is located at http://hyperium.github.io/hyper.
WARNING: Hyper is still under active development. The API is still changing in non-backwards-compatible ways without warning.
Example
Hello World Server:
fn hello(_: Request, res: Response<Fresh>) {
    *res.status_mut() = status::Ok;
    let mut res = res.start().unwrap();
    res.write(b"Hello World!");
    res.end().unwrap();
}
fn main() {
    let server = Server::http(Ipv4Addr(127, 0, 0, 1), 1337);
    server.listen(hello).unwrap();
}
Client:
fn main() {
    // Create a client.
    let mut client = Client::new();
    // Creating an outgoing request.
    let mut res = client.get("http://www.gooogle.com/")
        // set a header
        .header(Connection(vec![Close]))
        // let 'er go!
        .send().unwrap();
    // Read the Response.
    let body = res.read_to_string().unwrap();
    println!("Response: {}", body);
}
License
					Languages
				
				
								
								
									Rust
								
								94.5%
							
						
							
								
								
									C
								
								5.2%
							
						
							
								
								
									Shell
								
								0.3%