Rust
のWeb
アプリケーションフレームワークであるRocket
を使ってみました。
Rocket - Simple, Fast, Type-Safe Web Framework for Rust
Rocket is a web framework for the Rust programming language that makes it simple to write fast web applications without sacrificing flexibility or t...
今回はRocket
を使ってブラウザで「Hello, world!」を表示するところまでを説明していきたいと思います。
前提条件
rustup:1.24.3
Rust:1.61.0-nightly
Rocket:0.4.10
Rocket
を使用するには事前にrustup
というインストーラをダウンロードする必要があります。Rust
の環境構築については下記の記事を参考にしてください。
Rust nightlyのインストール
Rocket
ではRust
のnightly
というバージョンを使用します。
下記のコマンドを実行してRust nightly
をデフォルトのツールチェーンとして設定します。
$ rustup default nightly
nightly-x86_64-apple-darwin installed - rustc 1.61.0-nightly (3c17c84a3 2022-03-21)
以下のようにバージョンが確認できたらインストール成功です。
$ rustc --version
rustc 1.61.0-nightly (3c17c84a3 2022-03-21)
プロジェクトを新規作成する
以下のコマンドでプロジェクトを新規作成します。
$ cargo new hello-rocket --bin
Created binary (application) `hello-rocket` package
作成したプロジェクトのディレクトリに移動します。
$ cd hello-rocket
Cargo.tomlを編集する
Cargo.toml
というファイルを以下のように編集します。
$ vim 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.4.10"
ここではdependencies
に使用するRocketのバージョンを追記しています。
main.rsを編集する
src/main.rs
を編集します。
$ vim src/main.rs
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Hello, world!"
}
fn main() {
rocket::ignite().mount("/", routes![index]).launch();
}
http://localhost:8000へアクセスしたときに「Hello, world!」が表示されるように編集しています。
動作確認
下記コマンドで動作確認を行います。
$ cargo run
🔧 Configured for development.
=> address: localhost
=> port: 8000
=> log: normal
=> workers: 16
=> secret key: generated
=> limits: forms = 32KiB
=> keep-alive: 5s
=> read timeout: 5s
=> write timeout: 5s
=> tls: disabled
🛰 Mounting /:
=> GET / (index)
🚀 Rocket has launched from http://localhost:8000
http://localhost:8000へアクセスしてみます。
無事、Hello, world!
が表示されました!!
最後に
結構簡単にHello, world!を表示させることができましたが、画面のデザインのテンプレートの適用方法やルーティング、ORM
の使い方などまだまだWeb
アプリケーションとして動かすにはやることがいっぱいですね。
実装方法を色々調べてまた説明していきたいと思います。
コメント