Crate poem[][src]

Expand description

Poem is a full-featured and easy-to-use web framework with the Rust programming language.

Usage

Depend on poem in Cargo.toml:

poem = "*"

Example

use poem::{get, handler, listener::TcpListener, web::Path, IntoResponse, Route, Server};

#[handler]
fn hello(Path(name): Path<String>) -> String {
    format!("hello: {}", name)
}

#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
    let app = Route::new().at("/hello/:name", get(hello));
    Server::new(TcpListener::bind("127.0.0.1:3000"))
        .run(app)
        .await
}

Crate features

To avoid compiling unused dependencies, Poem gates certain features, all of which are disabled by default:

FeatureDescription
compressionSupport decompress request body and compress response body
cookieSupport for Cookie
csrfSupport for Cross-Site Request Forgery (CSRF) protection
multipartSupport for Multipart
native-tlsSupport for HTTP server over TLS with native-tls
opentelemetrySupport for opentelemetry
prometheusSupport for Prometheus
redis-sessionSupport for RedisSession
rustlsSupport for HTTP server over TLS with rustls
sessionSupport for session
sseSupport Server-Sent Events (SSE)
staticfilesSupport for serve static files
tempfileSupport for tempfile
templateSupport for askama
tower-compatAdapters for tower::Layer and tower::Service.
websocketSupport for WebSocket

Re-exports

pub use error::Error;
pub use error::Result;
pub use middleware::Middleware;
pub use web::FromRequest;
pub use web::IntoResponse;
pub use web::RequestBody;

Modules

Endpoint related types.

Some common error types.

A general purpose library of common HTTP types

Commonly used listeners.

Commonly used middleware.

sessionsession

Session management.

Commonly used as the type of extractor or response.

Structs

A body object for requests and responses.

A future for a possible HTTP upgrade.

Represents an HTTP request.

An request builder.

Component parts of an HTTP Request.

Represents an HTTP response.

An response builder.

Component parts of an HTTP Response.

Routing object

Routing object for HOST header

Routing object for HTTP methods

An HTTP Server.

An upgraded HTTP connection.

Enums

An network address.

Traits

An HTTP request handler.

Extension trait for Endpoint.

Represents a type that can convert into endpoint.

Functions

A helper function, similar to RouteMethod::new().connect(ep).

A helper function, similar to RouteMethod::new().delete(ep).

A helper function, similar to RouteMethod::new().get(ep).

A helper function, similar to RouteMethod::new().head(ep).

A helper function, similar to RouteMethod::new().options(ep).

A helper function, similar to RouteMethod::new().patch(ep).

A helper function, similar to RouteMethod::new().post(ep).

A helper function, similar to RouteMethod::new().put(ep).

A helper function, similar to RouteMethod::new().trace(ep).

Attribute Macros

Wrap an asynchronous function as an Endpoint.