Open4

axum

おるとろおるとろ

AXUM

Rustのwebフレームワーク。特徴は下記のようなものがある。

Rustで書かれていることによって得られる特徴

  • ビルドしてしまえばワンバイナリで依存が非常に少ない。
  • 早い。
  • メモリに関連するエラーが少ない。

Axumそのものの特徴

  • マクロフリーなApiでブラックボックスが控えめ
  • エクストラクター機能によるリクエストの宣言的パース
  • ボイラープレートが少ない
  • エラーが分かりやすい
  • towertower-httpの上に構築されていて、そのエコシステムを流用できる
おるとろおるとろ

とりあえず動かす

好きなところで

cargo new axum_test # cargoでaxumのプロジェクトを作成
cd axum_test # プロジェクトに移動
cargo add axum tokio # 依存ライブラリにaxumを追加

下記のようなコードを追加

use axum::{
    routing::get,
    Router,
};

#[tokio::main]
async fn main() {
    // 単一のルートを持つアプリケーションとしてビルドする
    let app = Router::new().route("/", get(|| async { "Hello, World!" }));

    // アプリケーションを hyper を使って起動し、3000番ポートをリッスンする
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    axum::serve(listener, app).await.unwrap();
}
[package]
name = "axum_test"
version = "0.1.0"
edition = "2024"

[dependencies]
axum = "0.8.4"
tokio = { version = "1", features = ["full"] } # tokioのフィーチャーフラグを有効化する

その後起動し、 http://localhost:3000/ にアクセスする。

cargo run