【Rust】Rust ~ axum / 入門編 ~

■ はじめに

簡単なツールを作りたくて、
どうせなら、Rust で作れば、Rust の勉強になると思ったので

目次

【1】axum
【2】前提条件
【3】Hello world作成手順
 Step1:プロジェクトを作成
 Step2:Cargo を修正
 Step3:Mainを修正
 Step4:実行&動作確認

【1】axum

* Rust の webアプリケーション フレームワーク

https://docs.rs/axum/latest/axum/

【2】前提条件

* Rust の開発環境が構築していること
 => 構築していない場合、以下の関連記事を参照のこと

Rust ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/22/234808

【3】Hello world作成手順

Step1:プロジェクトを作成

# cargo new <ProjectName> --bin (--bin: バイナリ作成)
cargo new hello_world --bin

Step2:Cargo を修正

* なお、dependencies のバージョンについては
 以下のサイトから調べるといい。

https://crates.io/

Cargo.toml

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"

[dependencies]
axum = "0.6.20"
tokio = { version = "1", features = ["full"] }

Step3:Mainを修正

* 「#[tokio::main]」も重要

main.rs

use axum::{routing::get, Router};
use std::net::SocketAddr;

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(handler));
    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));

    axum::Server::bind(&addr)
        .serve(app.into_make_service())
        .await
        .unwrap();
}

async fn handler() -> &'static str {
    "Hello, world!!!!"
}

Step4:実行&動作確認

実行

cd hello_world

cargo run

動作確認

* ブラウザで以下のURLにアクセスする
 => 「Hello, world!!!!」

http://localhost:3000/

参考文献

https://github.com/programatik29/axum-tutorial/blob/master/tutorial/03-hello-world.md

関連記事

Rust ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/22/234808