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 |
---|---|
cookie | Support for Cookie |
websocket | Support for WebSocket |
multipart | Support for Multipart |
sse | Support Server-Sent Events (SSE) |
tls | Support for HTTP server over TLS |
tempfile | Support for tempfile |
tower-compat | Adapters for tower::Layer and tower::Service . |
session | Support for CookieSession |
redis-session | Support for RedisSession |
opentelemetry | Support for opentelemetry |
prometheus | Support for Prometheus |
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.
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.
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
.