Repolode
valyala

valyala/fasthttp

高スループットと低いメモリ割り当てオーバーヘッドを目指して設計された、Go向けの高速なHTTPサーバー/クライアント実装。

スター
23,489
フォーク
1,883
未解決の Issue
66
最終コミット
一昨日

これは何?

fasthttpは、サーバーとクライアントの両方のAPIを備えたGo向けHTTP実装です。リクエスト量が非常に多いエッジケースを想定し、リクエストオブジェクトとレスポンスオブジェクトを再利用して、ホットパスでのメモリ割り当てを避けるように設計されています。READMEのベンチマークではnet/httpと比較しており、測定条件下でサーバーは最大約6倍、クライアントは最大約4倍高速と報告されています。

APIは意図的にnet/httpとは異なる設計です。ハンドラーが受け取る引数は*RequestCtxひとつで、ServeMuxはありません。そのため、ルーティングにはFiberなどのサードパーティ製ルーターやフレームワークを使います。ハンドラーが戻る前であれば、レスポンスヘッダーとボディは任意の順序で書き込めます。既存コードを移行するには、ハンドラーを適応させ、ハンドラーの終了後にコンテキストを参照しないようにする必要があります。

プロジェクトのREADMEでは、ほとんどのアプリケーションにはnet/httpを推奨しています。使いやすく、HTTPのより多くの境界ケースに対応し、HTTP/2もサポートしているためです。fasthttpは、毎秒数千件の小〜中規模のリクエストを処理し、安定した低レイテンシが求められるサービスに最適です。

主な機能

  • 01メモリ割り当てを減らすため、リクエストオブジェクトとレスポンスオブジェクトを再利用するサーバー/クライアントAPI。
  • 02ハンドラーが受け取るのはRequestCtxひとつで、ヘッダーとボディは任意の順序で書き込めます。
  • 03マルチコアでのスケーリングに向けた、reuseportリスナーとコア単位のデプロイパターンをサポート。
  • 04net/httpハンドラーの変換、ファイル配信、タイムアウト処理のためのヘルパーを備えています。
  • 05READMEのFAQによると、Go 1.26以降が必要です。

ユースケース

  • 大量の小さなリクエストを処理する、高スループットなAPIゲートウェイやプロキシ。
  • メモリ割り当ての負荷が測定済みのボトルネックとなっている、レイテンシ重視のGoサービス。
  • 単一のサーバーで多数のKeep-Alive接続を処理するエッジサービス。

クイックスタート

  1. 1

    Goでライブラリをインストールする

    go get -u github.com/valyala/fasthttp

使う前に知っておきたいこと

  • fasthttpはnet/httpのそのまま置き換えられるライブラリではなく、APIも異なります。
  • READMEでは、非常に高いスループットが必要な場合を除き、通常はnet/httpのほうが適しているとされています。

トピック

よくある質問

fasthttp とは?
高スループットと低いメモリ割り当てオーバーヘッドを目指して設計された、Go向けの高速なHTTPサーバー/クライアント実装。 fasthttpは、サーバーとクライアントの両方のAPIを備えたGo向けHTTP実装です。リクエスト量が非常に多いエッジケースを想定し、リクエストオブジェクトとレスポンスオブジェクトを再利用して、ホットパスでのメモリ割り当てを避けるように設計されています。READMEのベンチマークではnet/httpと比較しており、測定条件下でサーバーは最大約6倍、クライアントは最大約4倍高速と報告されています。
fasthttp は無料で使えますか?ライセンスは?
fasthttp は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
fasthttp は今もメンテナンスされていますか?
活発にメンテナンス中。fasthttp の最終コミットは 2026年10月21日 です。
fasthttp は何に使えますか?
大量の小さなリクエストを処理する、高スループットなAPIゲートウェイやプロキシ。 メモリ割り当ての負荷が測定済みのボトルネックとなっている、レイテンシ重視のGoサービス。 単一のサーバーで多数のKeep-Alive接続を処理するエッジサービス。
fasthttp のインストール方法は?
Goでライブラリをインストールする: go get -u github.com/valyala/fasthttp
fasthttp はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/valyala/fasthttp

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト