このプロジェクトについて
Fiberは、Go用のWebフレームワークで、Expressをインスピレーションとして、GoのHTTPエンジンであるFasthttpの上に構築されています。パフォーマンスを高めながらメモリ割り当てを最小限に抑え、高速なサーバーサイド開発を容易にすることを目的としています。
READMEに記載されている主な機能:
- ルーティング: ワイルドカード、名前付き、オプション、および複数パラメータのルートをサポートし、ルート名の指定と検索が可能です。
- 静的ファイル配信: ディレクトリや単一ファイルを配信し、一致しないルートの場合のインデックスファイルへのフォールバックをサポートしています。
- ミドルウェアとNext: グローバルおよびパススコープのミドルウェアで、c.Next()を介してチェーン化できます。
- 内部ミドルウェア: ロガー、CORS、回復、レートリミッターなど、内部ミドルウェアテーブルに記載されています。
- テンプレートエンジン: html/templateをデフォルトとして使用し、gofiber/templateパッケージを介してPug、Handlebars、Mustache、Amberなどの外部エンジンをサポートしています。
- ルートグループ化: 共有接頭辞とミドルウェアを持つルートのグループ化が可能です。
- JSON応答: 構造体やマップをJSONとして返すためのヘルパー関数があります。
- WebSocketとSocket.ioサポートは、contribパッケージを通じて提供されています。
- サーバーサイドイベント: チャンク転送を使用してイベントデータをストリーミングする例が示されています。
- 信頼できるプロキシ設定: プロキシヘッダーと信頼できるプロキシ範囲を構成可能です。
- net/http互換性: ルーターは標準のnet/httpハンドラーを直接受け入れることができ、アダプターミドルウェアを使用してアプリ全体やミドルウェアチェーンを双方向にブリッジできます。
- Expressスタイルのハンドラー: 2引数のリクエスト/レスポンスハンドラーと、nextコールバックを備えた3引数のミドルウェアを変換します。
インストールにはGo 1.26以上が必要です。パッケージはgo get github.com/gofiber/fiber/v3でインストールされます。最小限の例は、アプリの初期化、文字列を返すGETルートの定義、ポート3000でのリッスンを含みます。
READMEでは、fiber.Ctxから返される値はデフォルトでは不変ではなく、リクエスト間で再利用されるため、コンテキストの値はハンドラー内でのみ使用し、保持してはならないと注意されています。また、unsafeの使用により、ライブラリが最新のGoバージョンと常に互換性があるとは限らないと述べられています。ベンチマークはTechEmpowerから参照されており、チャートとウィキへのリンクが記載されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.