3 ポイント 投稿者 GN⁺ 2024-10-23 | 1件のコメント | WhatsAppで共有
  • Rwfは、RustでWebアプリケーションを構築するための包括的なフレームワーク
  • 古典的なMVCパターン(モデル・ビュー・コントローラー)を採用しており、高速で安全なWebアプリを簡単に構築するために必要なものをひととおり標準で提供

機能概要

  • HTTPサーバー
  • PostgreSQLクエリを簡単に記述できる、使いやすいORM
  • 動的テンプレート
  • 認証と組み込みユーザーセッション
  • ミドルウェア
  • バックグラウンドジョブとスケジュールジョブ
  • データベースマイグレーション
  • JSONシリアライズをサポートする組み込みRESTフレームワーク
  • WebSocketsサポート
  • 静的ファイルホスティング
  • バックエンド主導のSPA構築のためのHotwired Turboとの緊密な統合
  • 環境ごとの設定
  • ロギングとメトリクス
  • CLI
  • Django/Flaskアプリからの移行向けWSGIサーバー

クイックスタート

  • Rwfをスタックに追加するには、Rustのバイナリアプリケーションを作成し、依存関係にrwftokioを追加する:
cargo add rwf  
cargo add tokio@1 --features full  
  • アプリの構築は次のようにシンプル:
use rwf::prelude::*;  
use rwf::http::Server;  
  
#[derive(Default)]  
struct IndexController;  
  
#[async_trait]  
impl Controller for IndexController {  
    async fn handle(&self, request: &Request) -> Result {  
        Ok(Response::new().html("Hey Rwf!"))  
    }  
}  
  
#[tokio::main]  
async fn main() {  
    Server::new(vec![  
        route!("/" => IndexController),  
    ])  
    .launch("0.0.0.0:8000")  
    .await  
    .unwrap();  
}  

状態

  • Rwfは初期開発段階にあり、プロダクション対応ではない。多くの機能とドキュメントは未完成。

GN⁺のまとめ

  • Rwfは、RustでWebアプリケーションを構築するための強力なフレームワークで、MVCパターンを採用し、高速で安全なWebアプリを簡単に開発できる多様な機能を提供する。
  • 初期開発段階のため、プロダクション環境での利用は難しい可能性があるが、さまざまな機能とドキュメントは継続的に更新される予定。
  • RustでWebアプリケーションを開発したい開発者にとって有用であり、DjangoやFlaskのような既存フレームワークからの移行を検討する場合にも役立つ可能性がある。
  • 類似機能を提供する他のRustベースのWebフレームワークとしては、ActixやRocketなどがある。

1件のコメント

 
GN⁺ 2024-10-23
Hacker Newsの意見
  • Go言語の標準ライブラリを使うことで、複雑なWebフレームワークへの依存を減らし、セキュリティを高め、保守しやすくなることを強調している

    • Rustでは依然としてWebフレームワークが有用な場合があるとの意見を示している
  • Web MVCフレームワークの利用経験から、ビジネスロジックをモデルレイヤーに置くべきではないという教訓を得た

    • サービスレイヤーを強く推奨し、Interactorのようなgemを使ってコマンドオブジェクトとして実装することを提案している
  • RESTフレームワークはSwagger定義を自動生成できるべきだと期待している

    • 既存のORMやテンプレートエンジンを使わずに独自開発した理由を知りたがっている
  • 新しいフレームワークの名前の選び方は、検索結果の上位に表示される良い方法だと評価している

    • 新しいアイデアを探求することが重要だと言及している
  • PythonからRustへの移行に関心を示している

    • 大規模環境ではリバースプロキシで処理すべきだと提案している
  • ORMをWebフレームワークの組み込み機能として含めるのは、最初は合理的に見えるかもしれないが、時間が経つと独立したプロジェクトになったり、別のORMを使いたくなったりする可能性があると警告している

  • RailsやDjangoのような、強い意見を持つフレームワークがもっと必要だと述べている

  • Rustにおける大きな空白を埋めるフレームワークの登場に期待感を示している

  • Djangoの開発経験を通じてMVCの価値を理解し、この新しいフレームワークを見てみるつもりだと述べている

  • Rustバックエンド開発向けのさまざまなフレームワークを評価した結果、Axumが最も適していると判断している

    • 新しいフレームワークは「バッテリー同梱、ただし規約過多ではない」という基準に完全に合致していると評価している