このプロジェクトについて

IrisはGo言語向けのウェブフレームワークです。READMEは英語で記述されており、現在のv12ラインと、計画中のv14リリースのプレビューについて説明しています。 v12で説明されているコア機能: - サーバープッシュと組み込みデータを含むHTTP/2サポート。 - :uuid、:string、:intなどの標準的な型を持つ動的パスパラメータを受け入れ、カスタムパラメータ型を定義できるルーター。 - アクセスログ、基本認証、CORS、gRPC、hCaptchaおよびreCaptchaアンチボットチェック、JWT、メソッドオーバーライド、モニター、pprof、レート制限、リカバリ、リクエストID、書き換えなどの組み込みミドルウェア。 - APIバージョニング、Model-View-Controller(mvcパッケージ)、およびMVC、ハンドラー、APIルーター向けの依存関係注入。 - WebSockets、gRPC、および自動HTTPS。 - ローカルアプリをインターネットに公開するための組み込みngrokサポート。 - レスポンス圧縮(gzip, deflate, brotli, snappy, s2)およびCompressionミドルウェア。 - HTML、Django、Handlebars、Pug/Jadeを含むビューエンジン。 - カスタムファイルサーバーおよびWebDAVサーバー。 - キャッシュ、国際化(i18n, sitemap)、セッション、およびテストスイート。 - リッチなレスポンス:HTML、テキスト、Markdown、XML、YAML、バイナリ、JSON、JSONP、Protocol Buffers、MessagePack、コンテンツネゴシエーション、ストリーミング、サーバー送信イベント。 - リッチなリクエストバインディング:URLクエリ、ヘッダー、フォーム、テキスト、XML、YAML、バイナリ、JSON、バリデーション、Protocol Buffers、MessagePack。 - READMEのサンプルコードでは、iris.New()で作成された最小限のアプリ、app.Getによるルート登録、およびapp.Listen(":8080")が示されています。 READMEによると、_examplesディレクトリに285の例があり、コミュニティチャットや寄付ページへのリンクが提供されています。 計画中のv14(プロジェクト史上最大のリリースとされており、公開リリース日は未定で、新しいインポートパスを持つためv12のコードには影響しません): - コンパイルチェック付きのアプリケーションビルダー(iris.NewBuilder)。CORS、圧縮、アクセスログ、ヘルスエンドポイント、エラーマッピング、サービス、APIグループを、ステップ順序を強制した一つのチェーンで接続します。 - rest.ReadJSON[T]、rest.OK、rest.NoContent、rest.Count、rest.Created、rest.Paginatedなどのrestヘルパー。これにより、デコード、バリデーション、エラーレンダリングをハンドラー本体から分離します。 - ドメインエラーからHTTPレスポンスへのマッピングを一度だけ宣言するためのrest/errorsパッケージ。ログ記録やJSON/ビューとしてのレンダリングのためのオプションコレクターを備えています。 - MVC以外でも利用可能な依存関係注入。Build()中に実行されるInit(ctx)フックと、シャットダウン時に閉じられるクローズ可能リソースを提供します。heroパッケージはdepとrestに置き換えられました。 - パッケージの移動:sessions、cache、websocket、i18n、view、versioningがミドルウェアになります。mvcはfileserver、sitemap、apigraphコントローラーと共にcontrollerの下に移動します。ビューエンジンの実装はiris-contrib/viewsに移動します。 - 約30のバンドル済みミドルウェア。httpcost(リクエストごとの時間、メモリ、CPU)、bodylimit、compress、counter、referrer、geolocation、ipaccess、servertimingなどの新しいものが含まれます。 - iris.Optionsの部分リテラルによる設定。BindはSERVER_CONFIG環境変数またはファイルからYAMLをロードします。 - PartyからRouterへ、ctx.URLParamからctx.Query().Getへの名称変更などが含まれ、移行ガイドに記載されています。 - デフォルトでセキュアなセッションクッキー(Secure, SameSite=Lax)、すべての読み取りパスにおけるリクエストボディ制限、およびレート制限とLogoutで以前に報告された問題の修正。 - ドキュメントとして、リポジトリ内の23章からなる書籍、スタートガイド、v12移行ガイド、および生成されたWikiが計画されています。 READMEでは、Irisを高速でシンプルながらフル機能であると位置づけ、長期的なコミュニティサポートを強調しています。また、自ら測定値を報告するのではなく、外部のベンチマークや推薦ページへのリンクを提供しています。