Skip to content

macladson/warpdrive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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();
}

About

A compatibility library for running Warp filters within Axum servers.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages