メインコンテンツまでスキップ

Actixスタートアップガイド

Rustのインストール

まだRustをお持ちでない方は、Rustのインストールを管理するために、rustupを使用することをお勧めします。公式のRustガイドには、入門に関する素晴らしいセクションがあります。

Actix Webは現在、最小サポートRustバージョン(MSRV)が1.56です。rustup updateを実行することで、最新かつ最高のRustバージョンが利用できるようになります。このガイドでは、Rust 1.56以降を使用していることを前提に説明しています。

Hello, world!

まず、バイナリベースのCargoプロジェクトを新規に作成し、新しいディレクトリに移動します。

cargo new hello-world
cd hello-world

Cargo.tomlファイルに以下を追加し、プロジェクトの依存関係([dependencies])にactix-webを追加します。

[dependencies]
actix-web = "4"

リクエストハンドラは、0個以上のパラメータを受け付ける非同期関数を使用します。これらのパラメータはリクエストから抽出され(FromRequestトレイト参照)、HttpResponseに変換可能な型を返します(Responderトレイト参照)。

src/main.rsの内容を以下のように置き換えます。


これらのハンドラのいくつかは、組み込みのマクロを使用して直接ルーティング情報を付加していることに注意してください。これらは、ハンドラが応答すべきメソッドとパスを指定するためのものです。manual_hello (ルーティングマクロを使わないルート) を登録する方法は、後述します。

次に、Appのインスタンスを作成し、リクエストハンドラを登録します。ルーティングマクロを使うハンドラにはApp::serviceを、手動でルーティングするハンドラにはApp::routeを使用し、パスとメソッドを宣言します。最後に、アプリはHttpServer内で起動され、アプリを「アプリケーションファクトリ(application factory)」として使用して、入ってくるリクエストに対応します。

さらに、次のmain関数をsrc/main.rsに追記します。


以上です。プログラムをコンパイルし、cargo runで実行します。#[actix_web::main]マクロは、actix ランタイム内で非同期 main 関数を実行します。これで、http://127.0.0.1:8080/ または定義した他のルートにアクセスして、結果を確認することができます。