That it's version 0.x already states that it isn't marked stable yet. And the minor version is now properly bumped when there are breaking changes.
80 lines
1.8 KiB
Markdown
80 lines
1.8 KiB
Markdown
# hyper
|
|
|
|
[](https://travis-ci.org/hyperium/hyper)
|
|
[](https://crates.io/crates/hyper)
|
|
[](https://coveralls.io/r/hyperium/hyper?branch=master)
|
|
|
|
A Modern HTTP library for Rust.
|
|
|
|
[Documentation](http://hyperium.github.io/hyper)
|
|
|
|
## 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](http://hyperium.github.io/hyper).
|
|
|
|
## Example
|
|
|
|
Hello World Server:
|
|
|
|
```rust
|
|
extern crate hyper;
|
|
|
|
use std::io::Write;
|
|
|
|
use hyper::Server;
|
|
use hyper::server::Request;
|
|
use hyper::server::Response;
|
|
use hyper::net::Fresh;
|
|
|
|
fn hello(_: Request, 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("127.0.0.1:3000").unwrap();
|
|
}
|
|
```
|
|
|
|
Client:
|
|
|
|
```rust
|
|
extern crate hyper;
|
|
|
|
use std::io::Read;
|
|
|
|
use hyper::Client;
|
|
use hyper::header::Connection;
|
|
|
|
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::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
|
|
|
|
[MIT](./LICENSE)
|
|
|