warpdrive
A compatibility library for running Warp filters within Axum servers, enabling gradual migration from Warp to Axum. warpdrive is based on warp v0.3 and will not work for warp v0.4 or higher.
Usage
Add to your Cargo.toml:
[dependencies]
warpdrive = "0.1.0"
axum = "0.8"
warp = "0.3"
Example
use axum::{routing::get, Router};
use warpdrive::WarpService;
use warp::Filter;
#[tokio::main]
async fn main() {
let warp_routes = warp::path("api")
.and(warp::get())
.map(|| "Hello from Warp!")
.boxed();
let app = Router::new()
.route("/", get(|| async { "Hello from Axum!" }))
.fallback_service(WarpService::new(warp_routes));
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
axum::serve(listener, app).await.unwrap();
}