[][src]Module hyper::server

HTTP Server

A Server is created to listen on a port, parse HTTP requests, and hand them off to a Service.

There are two levels of APIs provide for constructing HTTP servers:

  • The higher-level Server type.
  • The lower-level conn module.


The Server is main way to start listening for HTTP requests. It wraps a listener with a MakeService, and then should be executed to start serving requests.

Server accepts connections in both HTTP1 and HTTP2 by default.


extern crate hyper;

use hyper::{Body, Response, Server};
use hyper::service::service_fn_ok;

fn main() {
    // Construct our SocketAddr to listen on...
    let addr = ([127, 0, 0, 1], 3000).into();

    // And a MakeService to handle each connection...
    let make_service = || {
        service_fn_ok(|_req| {
            Response::new(Body::from("Hello World"))

    // Then bind and serve...
    let server = Server::bind(&addr)

    // Finally, spawn `server` onto an Executor...
    hyper::rt::run(server.map_err(|e| {
        eprintln!("server error: {}", e);



Lower-level Server connection API.



A builder for a Server.


A listening HTTP server that accepts connections in both HTTP1 and HTTP2 by default.