Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stepancheg/rust-http2

HTTP/2 implementation in Rust/tokio
https://github.com/stepancheg/rust-http2

http2 tokio-rs

Last synced: 12 days ago
JSON representation

HTTP/2 implementation in Rust/tokio

Awesome Lists containing this project

README

        

# rust-http2

[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/stepancheg/rust-http2/Jobs)](https://github.com/stepancheg/rust-http2/actions?query=workflow%3AJobs)
[![License](https://img.shields.io/crates/l/httpbis.svg)](https://github.com/stepancheg/rust-http2/blob/master/LICENSE.txt)
[![crates.io](https://img.shields.io/crates/v/httpbis.svg)](https://crates.io/crates/httpbis)

HTTP/2 client and server implementation in Rust based on tokio.

Currently it is used as base for implementation of [grpc-rust](https://github.com/stepancheg/grpc-rust).

## Example server

Checkout the source code and execute command:

```
cargo run --example server
```

Server will be available on https://localhost:8443/.
You need any modern browser with HTTP/2 support to open the page (e. g. Firefox, Safari, Chrome).

Server only works over HTTP/2, if browser doesn't send HTTP/2 preface, server closes the connection.

## Example client

```
cargo run --example client https://google.com/
```

Result is:

```
:status: 302
cache-control: private
content-type: text/html; charset=UTF-8
referrer-policy: no-referrer
location: https://www.google.ru/?gfe_rd=cr&ei=mZQ4WZfaGISDZOzOktgO
content-length: 257
date: Thu, 08 Jun 2017 00:04:41 GMT
alt-svc: quic=":443"; ma=2592000; v="38,37,36,35"

302 Moved

302 Moved


The document has moved
here.

```