Skip to content

Instantly share code, notes, and snippets.

@masakielastic
Last active February 25, 2026 00:12
Show Gist options
  • Select an option

  • Save masakielastic/aede7c872a44c6567b31bcec7486eb2e to your computer and use it in GitHub Desktop.

Select an option

Save masakielastic/aede7c872a44c6567b31bcec7486eb2e to your computer and use it in GitHub Desktop.
warp v0.4 でシングルスレッド・マルチスレッド

warp v0.4 でシングルスレッド

シングルスレッド

Cargo.toml

[package]
name = "warp-project"
version = "0.1.0"
edition = "2024"

[dependencies]
tokio = { version = "1", features = ["macros", "rt"] }
warp  = { version = "0.4.2", features = ["server"] }

src/main.rs

use warp::Filter;

#[tokio::main(flavor = "current_thread")]
async fn main() {
    let routes = warp::path::end().map(|| "ok");
    warp::serve(routes).run(([127, 0, 0, 1], 3030)).await;
}

もしくは

use tokio::runtime::Builder;
use warp::Filter;

fn main() {
    let rt = Builder::new_current_thread()
        .enable_all()
        .build()
        .unwrap();

    rt.block_on(async {
        let routes = warp::any().map(|| "Hello");
        warp::serve(routes)
            .run(([127,0,0,1], 3030))
            .await;
    });
}

マルチスレッド

Cargo.toml

[package]
name = "warp-project"
version = "0.1.0"
edition = "2024"

[dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
warp  = { version = "0.4.2", features = ["server"] }

src/main.rs

use warp::Filter;

#[tokio::main(flavor = "multi_thread", worker_threads = 4)]
async fn main() {
    let routes = warp::path::end().map(|| "ok");
    warp::serve(routes).run(([127, 0, 0, 1], 3030)).await;
}

もしくは

use tokio::runtime::Builder;
use warp::Filter;

fn main() {
    let rt = Builder::new_multi_thread()
        .worker_threads(4)   // ← ここでスレッド数指定
        .enable_all()
        .build()
        .unwrap();

    rt.block_on(async {
        let routes = warp::path::end().map(|| "ok");
        warp::serve(routes)
            .run(([127, 0, 0, 1], 3030))
            .await;
    });
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment