このプロジェクトについて
Runiqueは、型安全性とパフォーマンスを維持しながら、Djangoスタイルの生産性をRustアプリケーションにもたらすことを目的としたウェブフレームワークです。Axum、SeaORM、およびTeraをベースに構築されており、宣言的なマクロと統合された規約を通じてボイラープレートを削減することに重点を置いています。メインクレートであるruniqueはコアフレームワークであり、リポジトリには、フレームワークを検証するために使用されるデモアプリケーションと、英語とフランス語のバイリンガルドキュメントも含まれています。
フレームワークは、モデルを一度宣言し、対応するSeaORMエンティティとSQLマイグレーションを生成するmodel!マクロを中心に構成されています。モデルに#[form]属性をペアリングすると、サーバー側で検証される一致する型安全なフォームが生成されます。admin!マクロでリソースを登録すると、リストビュー、検索、フィルター、および権限を備えたCRUD管理パネルが生成されます。ルーティングは、通常のAxum Routerを生成するurlpatterns!マクロによって処理され、テンプレートは自動エスケープ付きのTeraを使用します。
Runiqueには、定時CSRFトークン比較、レスポンスごとのContent Security Policy nonce、タイミングセーフなログイン処理、Argon2パスワードハッシュ、データベースバックドセッション、ハッシュ化された使い捨てパスワードリセットトークン、およびammoniaによる出力サニタイズなど、いくつかのデフォルトのセキュリティ対策が含まれています。また、新しいプロジェクトの作成、管理コードの生成、スーパーユーザーの作成、マイグレーションの作成、マイグレーションの適用またはロールバックなど、一般的なタスク用のCLIも提供します。管理パネルはベータ版であり、権限は現在主にリソースレベルにあり、生成された管理コードは再生成時に上書きされます。
このプロジェクトは、SQLite、PostgreSQL、MySQL、MariaDBを含む複数のデータベースバックエンドをサポートしており、デフォルトですべてのデータベースが有効になっています。フレームワーククレートのテストスイートが大きく、カバレッジメトリクスが提供されています。ドキュメントには、インストール、アーキテクチャ、構成、ルーティング、フォーム、モデル、テンプレート、ORMの使用、ミドルウェア、フラッシュメッセージ、例、管理、セッション、および環境変数について説明されています。このプロジェクトはMITライセンスの下で提供されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.