Open4
axum
AXUM
Rustのwebフレームワーク。特徴は下記のようなものがある。
Rustで書かれていることによって得られる特徴
- ビルドしてしまえばワンバイナリで依存が非常に少ない。
- 早い。
- メモリに関連するエラーが少ない。
Axumそのものの特徴
- マクロフリーなApiでブラックボックスが控えめ
- エクストラクター機能によるリクエストの宣言的パース
- ボイラープレートが少ない
- エラーが分かりやすい
-
tower
とtower-http
の上に構築されていて、そのエコシステムを流用できる
tower
とtower-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
Hello, World!
と表示される。