今回から数回に分けて、RustのWebアプリフレームワークであるActix Webを紹介します。題材は、シンプルな投稿アプリです。今回は、投稿アプリの基本形を作成し、Actix Webでのルーティングやハンドラー関数の書き方を理解して一覧表示機能まで実装してみます。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載のサンプルコードをGitHubで公開しています。こちらからダウンロードしてみてください。
今回のテーマは、Actix Webです。Actix Webは、近年人気急上昇中のWebアプリケーションフレームワークです。公式サイトによると、以下のような特徴があるとされています。
Actix Webでは、URLパターンに基づくルーティングルールの指定と、対応するハンドラーの作成が基本となっています。多くのWebアプリケーションフレームワークで取り入れられている手法なので、Actix Webでの開発にもすんなりと入っていけるでしょう。この他、フォームデータやクエリパラメーターなどリクエストパラメーターの取り出しや、レスポンスデータの生成を柔軟に実施できるなど、シンプルなコードで多くのことができるように設計されています。
Actix Webには、豊富なサンプルが用意されていますから、「actix/examples: Community showcase and examples of Actix ecosystem usage.」から参照してみてください。
以降で、Actix Webを使った投稿アプリを作成していきます(図1)。なお、本連載の後半でフロントエンドを充実させていくので、今回から作成するのはページ遷移を伴うオーソドックスなサーバサイドアプリとなっています。Actix WebでWebサイトをどう作るのか、そこをご覧いただければ幸いです。
最初に、Actix Webアプリの基本形を作成し、アプリの基本構造を見ていきましょう。なお、Actix Webの利用には、Rust 1.39以降が必要です。第1回の手順でバージョンを確認して、古いバージョンがインストールされている場合には、アップデートしておきます。
プロジェクトをcargo newコマンドで作成します。アプリ基本形のプロジェクト名は、actix-sampleとします。
% cargo new actix-sample
プロジェクトフォルダに移動して、外部クレートactix-webとactix-rtを依存関係としてcargo addコマンドでプロジェクトに追加します。actix-webはActix Webの本体、actix-rtはTokio(Rust用の非同期ランタイム)ベースの非同期ランタイムです。
% cd actix-sample % cargo add actix-web actix-rt
結果は、Cargo.tomlファイルに反映されるので確認しておきます。これで、アプリの準備はできました。
…略… [dependencies] actix-rt = "2.9.0" actix-web = "4.4.0"
Copyright © ITmedia, Inc. All Rights Reserved.