|  | # H2 | 
|  |  | 
|  | A Tokio aware, HTTP/2 client & server implementation for Rust. | 
|  |  | 
|  | [](https://opensource.org/licenses/MIT) | 
|  | [](https://crates.io/crates/h2) | 
|  | [][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.4" | 
|  | ``` | 
|  |  | 
|  | 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 |