🚀
Rust の web フレームワーク Rocket を使って 3分 Hello, world!
はじめに
今回は Rust の web フレームワークの Rocket
を使って3分で 「Hello,world!」を出力してみたいと思います。
実際に3分でできるように、細かいところは端折りつつ、とにかくスピード感持ってやっていきますよ!
(カップ麺の待ち時間にサクッと手を動かせますw)
🔻Rocket
Hello,world!
Rust の default stable
版をインストールしておきます。
$ rustup default stable
Rust のプロジェクトを作成します。
$ cargo new hello-rocket --bin
$ cd hello-rocket
hello-rocket
プロジェクト直下に、src
、Cargo.toml
があればOKです。
Cargo.toml
を以下のように更新します。
Cargo.toml
[package]
name = "hello-rocket"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rocket = "0.5.0"
src
直下の main.rs
ファイルを開き、以下のように更新します。
main.rs
#[macro_use]
extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Hello, world!"
}
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", routes![index])
}
GET /
にアクセスすると、「Hello,world!」されるような簡易的なコードです。
ここまでできたら、cargo run
を実行します。
$ cargo run
🔧 Configured for debug.
>> address: 127.0.0.1
>> port: 8000
>> workers: 4
>> max blocking threads: 512
>> ident: Rocket
>> IP header: X-Real-IP
>> limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB
>> temp dir: /var/folders/ln/23rt2v0j2zd001td8r7_j4gm0000gn/T/
>> http/2: true
>> keep-alive: 5s
>> tls: disabled
>> shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s
>> log level: normal
>> cli colors: true
📬 Routes:
>> (index) GET /
📡 Fairings:
>> Shield (liftoff, response, singleton)
🛡️ Shield:
>> X-Frame-Options: SAMEORIGIN
>> X-Content-Type-Options: nosniff
>> Permissions-Policy: interest-cohort=()
🚀 Rocket has launched from http://127.0.0.1:8000
GET / text/html:
>> Matched: (index) GET /
>> Outcome: Success(200 OK)
>> Response succeeded.
GET /favicon.ico image/avif:
>> No matching routes for GET /favicon.ico image/avif.
>> No 404 catcher registered. Using Rocket default.
>> Response succeeded.
http://127.0.0.1:8000
にアクセスします。
無事に Hello,world! できましたね!
おわりに
3分間で「Hello,world!」できましたでしょうか。
まだ、慣れなくて時間がかかる方もいらっしゃるかもしれません。
構築に関しては、何回も繰り返すことでスピードアップできると思いますので、頑張っていきましょう!
入門向けのブログもたくさん配信していますので、もしよろしければ見ていただけると大変励みになります。
では、Cheers!
Discussion