Repolode
yhirose

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. 1

    リポジトリから httplib.h ファイルをダウンロードします

  2. 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 の数値は毎日更新されます。

関連プロジェクト