Struct axum_server::Server [−][src]
pub struct Server<A = DefaultAcceptor> { /* fields omitted */ }
Expand description
HTTP server.
Implementations
Create a server that will bind to provided address.
Provide a handle for additional utilities.
Examples found in repository
examples/shutdown.rs (line 24)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let handle = Handle::new();
// Spawn a task to shutdown server.
tokio::spawn(shutdown(handle.clone()));
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind(addr)
.handle(handle)
.serve(app.into_make_service())
.await
.unwrap();
println!("server is shut down");
}
More examples
examples/graceful_shutdown.rs (line 27)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let handle = Handle::new();
// Spawn a task to gracefully shutdown server.
tokio::spawn(graceful_shutdown(handle.clone()));
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind(addr)
.handle(handle)
.serve(app.into_make_service())
.await
.unwrap();
println!("server is shut down");
}
Overwrite http configuration.
Examples found in repository
examples/configure_http.rs (line 22)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let config = HttpConfig::new()
.http1_only(true)
.http2_only(false)
.max_buf_size(8192)
.build();
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind(addr)
.http_config(config)
.serve(app.into_make_service())
.await
.unwrap();
}
Serve provided MakeService
.
Errors
An error will be returned when:
- Binding to an address fails.
make_service
returns an error whenpoll_ready
is called. This never happens onaxum
make services.
Examples found in repository
More examples
examples/http_and_https.rs (line 25)
≺ ≻
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
async fn http_server() {
let app = Router::new().route("/", get(http_handler));
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("http listening on {}", addr);
axum_server::bind(addr)
.serve(app.into_make_service())
.await
.unwrap();
}
async fn http_handler(uri: Uri) -> Redirect {
let uri = format!("https://127.0.0.1:3443{}", uri.path())
.try_into()
.unwrap();
Redirect::found(uri)
}
async fn https_server() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let config = RustlsConfig::from_pem_file(
"examples/self-signed-certs/cert.pem",
"examples/self-signed-certs/key.pem",
)
.await
.unwrap();
let addr = SocketAddr::from(([127, 0, 0, 1], 3443));
println!("https listening on {}", addr);
axum_server::bind_rustls(addr, config)
.serve(app.into_make_service())
.await
.unwrap();
}
examples/configure_http.rs (line 23)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let config = HttpConfig::new()
.http1_only(true)
.http2_only(false)
.max_buf_size(8192)
.build();
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind(addr)
.http_config(config)
.serve(app.into_make_service())
.await
.unwrap();
}
examples/shutdown.rs (line 25)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let handle = Handle::new();
// Spawn a task to shutdown server.
tokio::spawn(shutdown(handle.clone()));
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind(addr)
.handle(handle)
.serve(app.into_make_service())
.await
.unwrap();
println!("server is shut down");
}
examples/rustls_server.rs (line 23)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let config = RustlsConfig::from_pem_file(
"examples/self-signed-certs/cert.pem",
"examples/self-signed-certs/key.pem",
)
.await
.unwrap();
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind_rustls(addr, config)
.serve(app.into_make_service())
.await
.unwrap();
}
Additional examples can be found in:
Trait Implementations
Auto Trait Implementations
impl<A = DefaultAcceptor> !RefUnwindSafe for Server<A>
impl<A = DefaultAcceptor> !UnwindSafe for Server<A>
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more