79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # H2
 | |
| 
 | |
| > **NOTE**: h2's [`master`](https://github.com/hyperium/h2/tree/master) branch
 | |
| > is currently in the process of moving to `std::future`. For the most recent
 | |
| > release, please see the [`0.1.x`](https://github.com/hyperium/h2/tree/0.1.x)
 | |
| > branch.
 | |
| 
 | |
| A Tokio aware, HTTP/2.0 client & server implementation for Rust.
 | |
| 
 | |
| [](https://travis-ci.org/hyperium/h2)
 | |
| [](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.0 implementation.
 | |
| * Implements the full HTTP/2.0 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.0
 | |
| specification. It does not handle:
 | |
| 
 | |
| * Managing TCP connections
 | |
| * HTTP 1.0 upgrade
 | |
| * TLS
 | |
| * Any feature not described by the HTTP/2.0 specification.
 | |
| 
 | |
| The intent is that this crate will eventually be 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.1"
 | |
| ```
 | |
| 
 | |
| 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.0 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
 |