API Reference
This page provides a high-level overview of the warp API. For detailed, item-specific documentation, please refer to the official crate documentation on docs.rs.
Core Trait: Filter
The most important trait in warp is warp::Filter. It is the foundation of the entire framework. Filters are composable units that can inspect requests, extract values, and either proceed or reject. All routing and request processing logic is built by combining filters.
Top-Level Functions
These are some of the most commonly used functions available at the root of the warp crate:
warp::serve(filter): Creates a server to run the given filter.warp::any(): A filter that matches any request, often used as a starting point for a filter chain.warp::reply(): Creates a default200 OKreply.warp::redirect(uri): Creates a301 Moved Permanentlyredirect reply.warp::reject(): Rejects a request, typically resulting in a404 Not Foundif no other filters handle it.warp::service(filter): Converts aFilterinto atower::Service, allowing integration with the broader Tower and Tokio ecosystem.
Main Modules
warp's functionality is organized into several modules, each providing a specific set of filters.
warp::path
Contains filters for matching and extracting values from the request URL path.
path(segment): Matches a static path segment.param<T>(): Extracts a path segment and deserializes it into typeT.end(): Matches the end of the path.tail(): Extracts the rest of the unmatched path.path!(macro): A convenient macro for combining path segments and parameters.
warp::header
Contains filters for matching and extracting request headers.
header<T>(name): Extracts a header and deserializes it.optional<T>(name): Extracts a header if it exists.exact(name, value): Requires a header to have an exact value.
warp::query
Contains filters for deserializing the request's query string.
query<T>(): Deserializes the query string into a structT.raw(): Extracts the raw query string.
warp::body
Contains filters for extracting the request body.
json<T>(): Deserializes a JSON body into a structT.form<T>(): Deserializes a URL-encoded form body.bytes(): Extracts the raw body asbytes::Bytes.stream(): Provides the body as aStreamof chunks.
warp::fs
Contains filters for serving the local filesystem.
file(path): Serves a single file.dir(path): Serves a directory of static assets.
warp::ws
Provides the ws() filter for handling WebSocket upgrades.
warp::sse
Provides utilities like sse::reply() and sse::Event for Server-Sent Events.
warp::cors
Provides a configurable cors() wrapper for handling Cross-Origin Resource Sharing.
warp::log & warp::trace
Provides wrappers for logging requests and integrating with the tracing crate for diagnostics.