warpdrive 0.1.0

A compatibility library for running Warp filters within Axum servers.
Documentation

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() {
    // Existing Warp routes
    let warp_routes = warp::path("api")
        .and(warp::get())
        .map(|| "Hello from Warp!")
        .boxed();

    // New Axum routes
    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();
}