262c450f908dbf27754daff0784f0f20145036dd
The new macro handles single value headers, list headers, and list headers with at least one item. It creates the item for the header and contains its documentation. The new macro allows handling more header cases in the future, it will also be possible to include tests inside the macro. BREAKING CHANGE: Removed impl_header!() and impl_list_header!() macros, use new header!() macro.
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:
extern crate hyper;
use std::io::Write;
use std::net::Ipv4Addr;
use hyper::Server;
use hyper::server::Request;
use hyper::server::Response;
use hyper::net::Fresh;
fn hello(_: Request, mut res: Response<Fresh>) {
let mut res = res.start().unwrap();
res.write_all(b"Hello World!").unwrap();
res.end().unwrap();
}
fn main() {
Server::http(hello).listen(Ipv4Addr::new(127, 0, 0, 1), 3000).unwrap();
}
Client:
extern crate hyper;
use std::io::Read;
use hyper::Client;
use hyper::header::Connection;
use hyper::header::ConnectionOption;
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![ConnectionOption::Close]))
// let 'er go!
.send().unwrap();
// Read the Response.
let mut body = String::new();
res.read_to_string(&mut body).unwrap();
println!("Response: {}", body);
}
License
Languages
Rust
94.5%
C
5.2%
Shell
0.3%