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

chiは、Go HTTPサービスを構築するための軽量で慣用的かつ合成可能なルーターであり、成長してもメンテナンス性を維持する必要がある大規模なREST APIプロジェクトに特に適しています。 主要な設計原則には、プロジェクト構造の明確さ、メンテナンス性、標準のnet/httpハンドラーの使用、開発者の生産性、複雑なシステムをより小さなモジュール部品に分解する能力が含まれます。 コアルーターは1000行未満のコードで構成され、Go標準ライブラリ以外に外部依存関係はありません。これはGoのcontextパッケージ(Go 1.7以降で利用可能)上に構築されており、ハンドラーチェーン全体でリクエストスコープの値、キャンセルシグナル、タイムアウトを扱います。 ルーティングは名前付きURLパラメータ(例: `/users/{userID}`)、ワイルドカード(`/admin/*`)、正規表現パラメータ、ルートグループ、サブルーター、ミドルウェアのスタッキングをサポートします。ルーターは内部的にPatricia基数トライを使用します。 包括的なオプションのミドルウェアパッケージ(`github.com/go-chi/chi/v5/middleware`)は、リクエストIDの注入、ロギング、パニックからのリカバリ、タイムアウト処理、クライアントIP検出、レート制限、圧縮、ベーシック認証、コンテンツタイプの強制、キャッシュ防止、pprof統合などを提供します。標準のnet/httpミドルウェアも同様に互換性があります。 chiエコシステムの関連パッケージには、cors、docgen(自動ルートドキュメント生成)、jwtauth(JWT認証)、hostrouter(ドメインベースのルーティング)、httplog、httprate、httptracer、httpvcr、stampede(HTTPリクエストの合流)があります。 このプロジェクトはPressly、Cloudflare、Heroku、99Designsなどで本番環境で使用されています。v5ではgo.modモジュールパスのサポートが追加されました。