72 lines
1.8 KiB
Markdown
72 lines
1.8 KiB
Markdown
# H2
|
|
|
|
A Tokio aware, HTTP/2 client & server implementation for Rust.
|
|
|
|
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
|
|
[![Crates.io](https://img.shields.io/crates/v/h2.svg)](https://crates.io/crates/h2)
|
|
[![Documentation](https://docs.rs/h2/badge.svg)][dox]
|
|
|
|
More information about this crate can be found in the [crate documentation][dox].
|
|
|
|
[dox]: https://docs.rs/h2
|
|
|
|
## Features
|
|
|
|
* Client and server HTTP/2 implementation.
|
|
* Implements the full HTTP/2 specification.
|
|
* Passes [h2spec](https://github.com/summerwind/h2spec).
|
|
* Focus on performance and correctness.
|
|
* Built on [Tokio](https://tokio.rs).
|
|
|
|
## Non goals
|
|
|
|
This crate is intended to only be an implementation of the HTTP/2
|
|
specification. It does not handle:
|
|
|
|
* Managing TCP connections
|
|
* HTTP 1.0 upgrade
|
|
* TLS
|
|
* Any feature not described by the HTTP/2 specification.
|
|
|
|
This crate is now used by [hyper](https://github.com/hyperium/hyper), which will provide all of these features.
|
|
|
|
## Usage
|
|
|
|
To use `h2`, first add this to your `Cargo.toml`:
|
|
|
|
```toml
|
|
[dependencies]
|
|
h2 = "0.3"
|
|
```
|
|
|
|
Next, add this to your crate:
|
|
|
|
```rust
|
|
extern crate h2;
|
|
|
|
use h2::server::Connection;
|
|
|
|
fn main() {
|
|
// ...
|
|
}
|
|
```
|
|
|
|
## FAQ
|
|
|
|
**How does h2 compare to [solicit] or [rust-http2]?**
|
|
|
|
The h2 library has implemented more of the details of the HTTP/2 specification
|
|
than any other Rust library. It also passes the [h2spec] set of tests. The h2
|
|
library is rapidly approaching "production ready" quality.
|
|
|
|
Besides the above, Solicit is built on blocking I/O and does not appear to be
|
|
actively maintained.
|
|
|
|
**Is this an embedded Java SQL database engine?**
|
|
|
|
[No](https://www.h2database.com).
|
|
|
|
[solicit]: https://github.com/mlalic/solicit
|
|
[rust-http2]: https://github.com/stepancheg/rust-http2
|
|
[h2spec]: https://github.com/summerwind/h2spec
|