Cで書かれた、高性能なWebサーバー、リバースプロキシ、ロードバランサー、APIゲートウェイ、コンテンツキャッシュ。
yhirose/cpp-httplib
ブロッキングソケットI/OでHTTP/HTTPSサーバーとクライアントを構築できる、C++11対応のシングルヘッダーライブラリ。
- スター
- 16,923
- フォーク
- 2,777
- 未解決の Issue
- 0
- 最終コミット
- 17 時間前
これは何?
cpp-httplibは、HTTP/HTTPSサーバーとクライアントの両方を提供する、クロスプラットフォーム対応のC++11ライブラリです。httplib.hという単一のヘッダーファイルで配布されているため、プロジェクトに追加するにはそのファイルをインクルードするだけです。ブロッキングソケットI/Oを使用し、HTTP/1.1のみをサポートします。HTTP/2とHTTP/3は実装されていません。
パスパラメーターや正規表現を使ったルーティング、MIMEマッピングに対応した静的ファイル配信、multipartフォームやファイルのアップロード、チャンク転送やストリーミング用のコンテンツプロバイダー、Keep-Alive接続、ルーティング前後の処理や例外ハンドラーなどのミドルウェア形式のフックを備えています。Server-Sent EventsとWebSocketも追加機能としてドキュメントに記載されています。
TLSはOpenSSL(3.0以降)、Mbed TLS、wolfSSLに対応しており、コンパイル時のdefineで選択できます。証明書の検証設定や相互TLSも利用でき、macOSとWindowsではシステムの証明書ストアとも連携します。
主な機能
- 01基本的なHTTP利用ならビルド時の依存関係が不要なシングルヘッダー形式
- 02HTTPサーバーとクライアントを1つのライブラリで提供
- 03OpenSSL、Mbed TLS、wolfSSLを使ったHTTPS
- 04パスパラメーターと正規表現に対応したルーティング
- 05静的ファイル配信、multipartアップロード、チャンク転送またはストリーミングによるレスポンス
- 06相互TLSと証明書の検証設定
ユースケース
- 大規模なフレームワークを導入せずに、C++アプリケーションへ軽量な組み込みHTTPエンドポイントを追加する
- HTTPS経由でREST APIを呼び出すC++クライアントを作成する
- C++ツールから静的ファイルやシンプルなWeb APIを配信する
- 最小限のセットアップで、C++プロジェクト内のローカルHTTPサービスを試作する
クイックスタート
- 1
リポジトリから httplib.h ファイルをダウンロードします
- 2
httplib.h を C++ コードにインクルードし、サンプルに従ってサーバーまたはクライアントをビルドします
使う前に知っておきたいこと
- ブロッキングソケット I/O を使用するため、ノンブロッキング設計には適していません。
- HTTP/1.1 のみをサポートしており、HTTP/2 と HTTP/3 は実装されていません。
- 32 ビットプラットフォームはサポート対象外で、セキュリティレビューも行われません。
トピック
よくある質問
- cpp-httplib とは?
- ブロッキングソケットI/OでHTTP/HTTPSサーバーとクライアントを構築できる、C++11対応のシングルヘッダーライブラリ。 cpp-httplibは、HTTP/HTTPSサーバーとクライアントの両方を提供する、クロスプラットフォーム対応のC++11ライブラリです。httplib.hという単一のヘッダーファイルで配布されているため、プロジェクトに追加するにはそのファイルをインクルードするだけです。ブロッキングソケットI/Oを使用し、HTTP/1.1のみをサポートします。HTTP/2とHTTP/3は実装されていません。
- cpp-httplib は無料で使えますか?ライセンスは?
- cpp-httplib は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- cpp-httplib は今もメンテナンスされていますか?
- 活発にメンテナンス中。cpp-httplib の最終コミットは 2026年10月22日 です。
- cpp-httplib は何に使えますか?
- 大規模なフレームワークを導入せずに、C++アプリケーションへ軽量な組み込みHTTPエンドポイントを追加する HTTPS経由でREST APIを呼び出すC++クライアントを作成する C++ツールから静的ファイルやシンプルなWeb APIを配信する 最小限のセットアップで、C++プロジェクト内のローカルHTTPサービスを試作する
- cpp-httplib のインストール方法は?
- リポジトリから httplib.h ファイルをダウンロードします httplib.h を C++ コードにインクルードし、サンプルに従ってサーバーまたはクライアントをビルドします
- cpp-httplib はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/yhirose/cpp-httplib
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
CaddyはGo製の拡張可能なWebサーバーで、HTTP/1.1、HTTP/2、HTTP/3を提供し、デフォルトでHTTPSを自動的に有効化します。
高スループットと低いメモリ割り当てオーバーヘッドを目指して設計された、Go向けの高速なHTTPサーバー/クライアント実装。
文字列から float、double、整数値を高速かつ正確に解析する、from_chars互換のヘッダーオンリーC++ライブラリ。
HTTP/WebSocketサービスを構築するための、高速で使いやすいFlask風C++マイクロフレームワーク。ヘッダーオンリーで利用できます。
Go標準のnet/httpを基盤とする、高速で軽量なWebフレームワーク。