These examples show how to do common tasks using hyper
. You may also find the Guides helpful.
If you checkout this repository, you can run any of the examples with the command:
cargo run --example {example_name} --features="full"
A complete list of dependencies used across these examples:
[dependencies]
hyper = { version = "1", features = ["full"] }
tokio = { version = "1", features = ["full"] }
pretty_env_logger = "0.5"
http-body-util = "0.1"
bytes = "1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
form_urlencoded = "1"
http = "1"
futures-util = { version = "0.3", default-features = false }
-
client
- A simple CLI http client that requests the url passed in parameters and outputs the response content and details to the stdout, reading content chunk-by-chunk. -
client_json
- A simple program that GETs some json, reads the body asynchronously, parses it with serde and outputs the result.
-
hello
- A simple server that returns "Hello World!". -
echo
- An echo server that copies POST request's content to the response content.
-
gateway
- A server gateway (reverse proxy) that proxies to thehello
service above. -
graceful_shutdown
- A server that has a timeout for incoming connections and does graceful connection shutdown. -
http_proxy
- A simple HTTP(S) proxy that handle and upgradeCONNECT
requests and then proxy data between client and remote server. -
multi_server
- A server that listens to two different ports, a differentService
per port. -
params
- A webserver that accept a form, with a name and a number, checks the parameters are presents and validates the input. -
send_file
- A server that sends back content of files using tokio-util to read the files asynchronously. -
service_struct_impl
- A struct that manually implements theService
trait and uses a shared counter across requests. -
single_threaded
- A server only running on 1 thread, so it can make use of!Send
app state (like anRc
counter). -
state
- A webserver showing basic state sharing among requests. A counter is shared, incremented for every request, and every response is sent the last count. -
upgrades
- A server and client demonstrating how to do HTTP upgrades (such as WebSockets). -
web_api
- A server consisting in a service that returns incoming POST request's content in the response in uppercase and a service that calls the first service and includes the first service response in its own response.