RustのWeb開発入門|Actix-webフレームワークの基礎

先生

RustでWeb開発?Actix-webなら、安全・高速なWebアプリが作れるぞ!

RustとActix-web:Web開発の新たな選択肢

Rustは、パフォーマンス、安全性、並行性に優れたシステムプログラミング言語として知られています。近年、Web開発の分野でも注目を集めており、その強力な型システムと所有権システムが、より安全で効率的なWebアプリケーションの開発を可能にします。

Actix-webは、Rustで記述された高速で安全なWebフレームワークです。アクターモデルに基づいており、高い並行処理能力を発揮します。シンプルなAPIと強力な機能により、初心者から経験豊富な開発者まで、幅広いニーズに対応できます。

この記事では、Actix-webの基本的な使い方を解説し、RustによるWeb開発の入門を支援します。

Actix-webのセットアップ

まず、Rustの開発環境が整っていることを確認してください。Rustがインストールされていない場合は、公式サイトからインストールできます。

次に、新しいRustプロジェクトを作成します。Cargoを使用すると簡単にプロジェクトを管理できます。

cargo new my-actix-web-app

my-actix-web-appディレクトリに移動し、Cargo.tomlファイルを開いて、Actix-webと必要な依存関係を追加します。

[dependencies]
actix-web = "4"

ここでは、Actix-webのバージョン4を使用しています。必要に応じてバージョン番号を調整してください。

基本的なWebサーバーの構築

次に、基本的なWebサーバーを構築してみましょう。src/main.rsファイルに以下のコードを記述します。

use actix_web::{get, App, HttpResponse, HttpServer, Responder};
#[get("/")]
async fn hello() -> impl Responder {
    HttpResponse::Ok().body("Hello, Actix-web!")
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new().service(hello)
    })
    .bind("127.0.0.1:8080")?
    .run()
    .await
}

このコードは、ルートパス(/)へのGETリクエストに対してHello, Actix-web!という文字列を返すシンプルなWebサーバーを定義しています。

#[get("/")]は、hello関数がルートパスに対するGETリクエストを処理することを指定するアノテーションです。

HttpServer::newは、新しいHTTPサーバーを作成します。App::new()は、新しいActix-webアプリケーションを作成します。service(hello)は、hello関数をサービスとして登録します。

bind("127.0.0.1:8080")は、サーバーをローカルホストの8080ポートにバインドします。run()は、サーバーを起動し、リクエストの処理を開始します。

サーバーの実行とテスト

上記のコードを記述したら、ターミナルで以下のコマンドを実行してサーバーを起動します。

cargo run

サーバーが起動したら、Webブラウザでhttp://localhost:8080にアクセスします。Hello, Actix-web!と表示されれば成功です。

これで、Actix-webによるWeb開発の基本的な流れを体験できました。

参考リンク

まとめ

この記事では、RustのActix-webフレームワークを使ったWeb開発の基礎について学びました。Actix-webは、高性能で安全なWebアプリケーションを開発するための強力なツールです。この記事を参考に、ぜひActix-webを使ったWeb開発に挑戦してみてください。