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));
let listener = TcpListener::bind("127.0.0.1:3000");
let server = Server::new(listener).await?;
server.run(app).await
}
Crate features
To avoid compiling unused dependencies, Poem gates certain features, all of which are disabled by default:
Feature | Description |
---|---|
compression | Support decompress request body and compress response body |
cookie | Support for Cookie |
multipart | Support for Multipart |
native-tls | Support for HTTP server over TLS with native-tls |
opentelemetry | Support for opentelemetry |
prometheus | Support for Prometheus |
redis-session | Support for RedisSession |
rustls | Support for HTTP server over TLS with rustls |
session | Support for session |
sse | Support Server-Sent Events (SSE) |
staticfiles | Support for serve static files |
tempfile | Support for tempfile |
template | Support for askama |
tower-compat | Adapters for tower::Layer and tower::Service . |
websocket | Support 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.
session
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
.