Rustでアプリケーションを作る#
Rustは安全性、パフォーマンス、並行性に優れたシステムプログラミング言語です。WebアプリケーションのバックエンドとしてもRustは優れた選択肢となっています。
ここではRustでWebアプリケーションを作る方法を体験していきます。
前提#
Node.jsをインストールされていること Mac / Linuxの場合Homebrewがインストールされていること
環境設定#
まず、Rustをインストールします。 最初に、ディレクトリを作成、移動します。 以下のコマンドをターミナル(もしくはコマンドプロンプト。以下ターミナルに寄せます。)で実行します。
mkdir rust_web_app
cd rust_web_app
Mac / Linux / Windows#
Rustのインストールには公式のツール「rustup」を使用します。
Mac / Linux#
ターミナルで次のコマンドを実行します:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
インストール後にターミナルを再起動するか、次のコマンドで環境変数を更新します:
source $HOME/.cargo/env
Windows#
Rustup-Initをダウンロードして実行します。または、コマンドプロンプトで次のコマンドを実行します:
curl -sSf https://sh.rustup.rs | sh
インストールが完了したら、以下のコマンドでRustのバージョンを確認できます:
rustc --version
cargo --version
Actixフレームワークのセットアップ#
Rustには様々なWebフレームワークがありますが、ここでは高性能で使いやすい「Actix Web」を使用します。新しいプロジェクトを作成しましょう。
cargo new rust-web-server
cd rust-web-server
Cargo.toml
ファイルを開き、以下の依存関係を追加します:
[package]
name = "rust-web-server"
version = "0.1.0"
edition = "2021"
[dependencies]
actix-web = "4.3.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
src/main.rs
ファイルを編集して、最初の簡単なAPIを作成します:
use actix_web::{get, web, App, HttpResponse, HttpServer, Responder};
use serde::{Deserialize, Serialize};
#[derive(Serialize)]
struct Message {
text: String,
}
#[get("/hello")]
async fn hello() -> impl Responder {
let message = Message {
text: "こんにちは!".to_string(),
};
HttpResponse::Ok().json(message)
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
println!("サーバーを起動します: http://localhost:8080");
HttpServer::new(|| {
App::new()
.service(hello)
})
.bind("127.0.0.1:8080")?
.run()
.await
}
サーバーを起動してみましょう:
cargo run
ブラウザで http://localhost:8080/hello
にアクセスします。
以下のようなJSON応答が表示されるはずです:
{"text":"こんにちは!"}
この応答が表示されれば、サーバーの構築は成功です!
次は、べつのRustのコントローラーを追加して、Rustについての理解を深めてみましょう!