Delphi、C++ Builder 向け QUIC & HTTP/3 ライブラリ | sgcQUIC

sgcQUIC — Delphi、C++ Builder、.NET 向け QUIC & HTTP/3

Delphi、C++ Builder、.NET 向けの完全な QUIC・HTTP/3 スタックです。sgcQUIC は 4 つのパレットコンポーネント — 生の QUIC トランスポートのクライアントとサーバー(RFC 9000)、および HTTP/3 のクライアントとサーバー(RFC 9114) — を、OpenSSL 3.5 のネイティブ QUIC エンジン上に構築して提供します。QPACK ヘッダー圧縮、Alt-Svc によるディスカバリー、0-RTT、コネクションマイグレーション、WebTransport を標準搭載しており、同じ API が Object Pascal と C# の両方で動作します。

結論から言うと: はい、Delphi で HTTP/3 を扱えます。sgcQUIC は Delphi、C++ Builder、.NET 向けの QUIC・HTTP/3 ライブラリで、2026 年 8 月時点で、いずれのプロトコルについてもクライアントとサーバーの両方を提供している唯一の製品です。OpenSSL 3.5 のネイティブ QUIC エンジン上に構築された 4 つのパレットコンポーネントとしてインストールされ、完全なソースコードが付属します。

QUIC トランスポート(RFC 9000)
HTTP/3(RFC 9114)+ QPACK
OpenSSL 3.5 ネイティブ QUIC
Delphi / C++ Builder / .NET
WebTransport(RFC 9220)

Delphi で QUIC と HTTP/3 を使うための選択肢

HTTP/3 はすでに完成した標準であり、世界の Web トラフィックの大きな割合を担っています。主要なブラウザーと CDN はいずれも HTTP/3 を話します。一方で、Object Pascal のエコシステムは追随が遅れてきました。ここでは、主要な Delphi ネットワークライブラリが QUIC と HTTP/3 についてどのような状況にあるかを、各ベンダー自身のドキュメントに基づいてまとめます。

ライブラリ QUIC(RFC 9000) HTTP/3(RFC 9114) ベンダーのドキュメントの内容
sgcQUIC クライアントとサーバー クライアントとサーバー OpenSSL 3.5 に組み込まれた QUIC エンジン上の 4 つのコンポーネントです。QPACK、Alt-Svc、0-RTT、コネクションマイグレーション、WebTransport に対応します。
Indy なし なし 古くからの高水準プロトコルを備えた TCP および UDP のソケットフレームワークです。QUIC はライブラリに含まれていません。
ICS (Overbyte) なし なし ICS のダウンロードページには “ICS に QUIC 対応の予定はありません” と明記されています。
TMS Sparkle / FNC WebSocket なし なし http.sys スタック上の HTTP および HTTPS クライアントとサーバーです。QUIC も HTTP/3 もドキュメントに記載されていません。
/n software IPWorks なし なし HTTP、WebSockets、gRPC、FTP などを幅広くカバーするスイートです。QUIC も HTTP/3 もドキュメントに記載されていません。
Devart SecureBridge なし なし SSH、SFTP、TLS、WebSocket、SignalR に対応しますが、いずれも TCP 上です。QUIC も HTTP/3 もドキュメントに記載されていません。
mORMot 2 なし なし メンテナーは、HTTP/2 はサポートしておらず今後の対応予定もなく、代わりに WebSocket 上の REST を用いていると述べています。

2026 年 8 月時点のベンダードキュメントに基づいて作成: ICS ダウンロードページTMS SparkleIPWorksDevart SecureBridgemORMot 2Indy。 この日付以降にベンダーが QUIC に対応した場合は、この表を更新します。

同じ HTTP セマンティクス、新しいトランスポート

HTTP/3 は、すでにおなじみのメソッド、ステータスコード、ヘッダーをそのまま使いながら、TCP を QUIC に置き換えます。QUIC は TLS 1.3 を内蔵した UDP ベースのトランスポートです。sgcQUIC は OpenSSL 3.5 のネイティブ QUIC サポートを通じてこれを制御するため、別のライブラリを用意することなく、Delphi、C++ Builder、.NET からモダンなトランスポートを利用できます。

1 回のハンドシェイク、ヘッドオブラインブロッキングなし

QUIC(RFC 9000)は、トランスポートと TLS 1.3 のハンドシェイクを 1 回のやり取りに統合し、トランスポートレベルのヘッドオブラインブロッキングを取り除きます — パケットが失われても、そのデータを運んでいたストリームだけが止まり、コネクション全体は止まりません。

OpenSSL 3.5 のネイティブ QUIC 上に構築

エンジンは OpenSSL のロード時に自動的に検出されます。同梱の OpenSSL 3.5 バイナリを使うと qmBuiltin エンジンが有効になり、1 つのコネクションで複数のストリームを扱えます。これはコンポーネントの中心となっているエンジンです。

QPACK ヘッダー圧縮

HTTP/3 は QPACK(RFC 9204)でヘッダーを圧縮します。QPACK は HTTP/3 における HPACK の後継で、QUIC の順不同配信に対応するよう設計されており、動的テーブルの更新は専用のエンコーダー・デコーダーストリームで伝送されます。

コネクションマイグレーション

QUIC のコネクションはアドレスの 4 つ組ではなく connection ID によって識別されるため、クライアントがネットワークを切り替えてもセッションは維持されます — デバイスが Wi-Fi からモバイルデータに移っても、新たなハンドシェイクなしにコネクションを追従させられます。

0-RTT と複数ストリーム

新規コネクションは 1 回の往復で確立し、再開されたセッションは最初のやり取りで 0-RTT データを運べます。builtin エンジンでは、EnableMultiStreamOpenStream により、1 つのコネクション上に複数の独立した QUIC ストリームを配置できます。

WebTransport セッション

WebTransport(RFC 9220)は Extended CONNECT 経由でネゴシエートされ、アプリケーションに QUIC ストリームを直接渡します。builtin エンジン上で、低遅延な双方向トラフィック向けに設計されています。

4 つのコンポーネント、2 つのレイヤー

ストリームとデータグラムのための生の QUIC トランスポートのペアと、同じエンジン上でリクエスト/レスポンスを扱う HTTP/3 のペアです。それぞれが Delphi、C++ Builder、.NET のサンプルを備えた専用ページにリンクしています。

TsgcQUICClient

生の QUIC トランスポートクライアントです。QUIC コネクションを開き、1 つまたは複数のストリーム(RFC 9000)でバイト列を送受信します。0-RTT とコネクションマイグレーションに対応 — HTTP セマンティクスを伴わない QUIC です。

コンポーネントを見る →

TsgcQUICServer

生の QUIC トランスポートサーバーです。UDP ポートをバインドし、TLS 1.3 を終端し、QUIC のコネクションとストリームごとにイベントを発生させます。QUIC の上に独自のプロトコルを構築できます。

コンポーネントを見る →

TsgcHTTP3Client

HTTP/3 クライアント(RFC 9114)です。すべてのメソッドをブロッキングまたは非同期の呼び出しとして提供し、QPACK 圧縮、Alt-Svc によるディスカバリー、サーバープッシュ、Extended CONNECT トンネル、WebTransport セッションに対応します。

コンポーネントを見る →

TsgcHTTP3Server

HTTP/3 サーバーです。QUIC 上でリクエストを処理し、TsgcQUICServer を継承します。リクエストごとにイベントを発生させ、レスポンスのプッシュ、WebTransport セッションのオープン、データグラムの送信が可能です。

コンポーネントを見る →

完全な機能マトリックスを見る →

HTTP/3 での GET リクエスト

ホストとポートに接続し、リクエストを発行します。デフォルトポートは 443 です。Delphi、C++ Builder、.NET で同じ API を使用します。

uses
  sgcHTTP3_Client;

var
  oClient: TsgcHTTP3Client;
  vBody: string;
begin
  oClient := TsgcHTTP3Client.Create(nil);
  oClient.OnResponse := OnResponseHandler;
  oClient.OnAltSvc   := OnAltSvcHandler;

  oClient.Connect('www.example.com', 443);
  vBody := oClient.Get('https://www.example.com/');   // request over QUIC
  oClient.Disconnect;
end;
// includes: sgcHTTP3_Client.hpp

TsgcHTTP3Client *oClient = new TsgcHTTP3Client(NULL);
oClient->OnResponse = OnResponseHandler;
oClient->OnAltSvc   = OnAltSvcHandler;

oClient->Connect("www.example.com", 443);
String vBody = oClient->Get("https://www.example.com/");   // request over QUIC
oClient->Disconnect();
using esegece.sgcWebSockets;

var oClient = new TsgcHTTP3Client();
oClient.OnResponse += OnResponseHandler;
oClient.OnAltSvc   += OnAltSvcHandler;

oClient.Connect("www.example.com", 443);
var vBody = oClient.Get("https://www.example.com/");   // request over QUIC
oClient.Disconnect();

HTTP/3、HTTP/2、WebSocket、生の QUIC のどれを選ぶか

QUIC は、すでに稼働しているすべてを置き換えるものではありません。特定の条件下で力を発揮する一方で、ネットワーク経路で UDP が通ることが前提になります。その機能にはどのトランスポートが本当に必要なのかを判断する目安にしてください。

HTTP/3 を選ぶとき

クライアントがパケットロスの多いネットワークやモバイル回線にある場合、一度に多数のリソースを取得する場合、あるいはエンドポイントがすでに Alt-Svc で HTTP/3 を告知している場合です。HTTP/3 はトランスポートレベルのヘッドオブラインブロッキングを取り除くため、1 つのパケットが失われても、実行中の他のすべてのリクエストが止まることはありません。TsgcHTTP3Client を使用します。

HTTP/2 のままにするとき

トラフィックがデータセンター内や安定した回線上を流れる場合、あるいは経路上のプロキシやファイアウォールが UDP を遮断する場合です。HTTP/2 はすでに TCP 上で多重化とヘッダー圧縮を提供しており、企業ネットワークをそのまま通過できる可能性がはるかに高くなります。

Delphi 向け HTTP/2 クライアント →

WebSocket のままにするとき

クライアントとサーバーの間で、長時間維持される対称的なメッセージ指向のプッシュが必要で、それを現在世界中のあらゆるプロキシ越しに動作させる必要がある場合です。TLS 上の WebSocket は、実運用において最も互換性の高い双方向トランスポートであり続けています。

sgcWebSockets →

生の QUIC まで下りるとき

独自のプロトコルを運んでおり、HTTP セマンティクスがかえって邪魔になる場合です。たとえばメディア、テレメトリー、ゲームの状態などが該当します。TsgcQUICClientTsgcQUICServer は、TLS 1.3 とコネクションマイグレーションを処理済みの状態で、QUIC のストリームとデータグラムを直接扱えるようにします。

TsgcQUICClient →

リアルタイムトランスポート選定ガイドの全文 →

sgcQUIC が実装する RFC

独自のトランスポートではなく、標準に基づいたスタックです。

RFC 9000 — QUIC

QUIC トランスポート: トランスポートと TLS 1.3 のハンドシェイクを統合した単一の手順、独立したストリーム、connection ID、マイグレーションです。TsgcQUICClientTsgcQUICServer を通じて直接公開されます。

RFC 9114 — HTTP/3

QUIC 上の HTTP セマンティクス: おなじみのメソッド、ステータスコード、ヘッダーを QUIC ストリームにマッピングします。TsgcHTTP3ClientTsgcHTTP3Server が実装しています。

RFC 9204 — QPACK

HTTP/3 向けのヘッダー圧縮で、QUIC の順不同配信に対応するよう設計されています。動的テーブルは専用のエンコーダー・デコーダーストリームで同期されます。

RFC 9220 — WebTransport

Extended CONNECT を用いて HTTP/3 上で WebTransport をブートストラップし、低遅延な双方向トラフィックのためにアプリケーションへ QUIC ストリームを渡します。

sgcWebSockets のアドオン

sgcQUIC はアドオンとしてライセンスされます。すべてのライセンスには、完全なソースコード、1 年間のアップデート、70% の更新割引が含まれます。

sgcQUIC

€149

Single、Team、Site の各ライセンスをご用意しています。完全なソースコードが含まれます。

  • TsgcQUICClient & TsgcQUICServer
  • TsgcHTTP3Client & TsgcHTTP3Server
  • Delphi、C++ Builder & .NET
  • 完全なソースコード
  • 1 年間のアップデート

★ sgcWebSockets が必要です

sgcQUIC には sgcWebSockets Enterprise が必要です。

価格を見て注文する

Delphi における QUIC と HTTP/3 のよくある質問

Delphi、C++ Builder、.NET アプリケーションに HTTP/3 を追加する前に、開発者からよく寄せられる質問です。

標準では対応していません。Delphi の RTL と Indy は TCP ベースで QUIC トランスポートを持たず、ICS も QUIC 対応の予定はないと表明しています。sgcQUIC がこれを補います: コンポーネントをインストールすれば、TsgcHTTP3Client が QUIC 上で HTTP/3 リクエストを発行し、TsgcHTTP3Server がそれに応答します。OpenSSL 3.5 のネイティブ QUIC エンジン上に構築されているため、別途 C ライブラリをバインドしたり配布したりする必要はありません。
あります。sgcQUIC は TsgcQUICClientTsgcQUICServer を通じて RFC 9000 を直接実装しているため、HTTP セマンティクスを介さずに、独自のプロトコルを QUIC のストリームやデータグラムで運べます。2026 年 8 月時点で、QUIC 対応をドキュメントに明記している Delphi のネットワークライブラリは他になく、Object Pascal で生のトランスポートが必要であればこれが選択肢となります。
動かせます。TsgcHTTP3ServerTsgcQUICServer を継承し、UDP ポートをバインドし、TLS 1.3 を終端し、リクエストごとにイベントを発生させます。レスポンスのプッシュ、WebTransport セッションのオープン、データグラムの送信も可能です。他の言語で利用できる QUIC スタックの多くはクライアント専用か、前段にリバースプロキシを必要とするため、プロセス内で動作するネイティブな HTTP/3 サーバーは Go や Rust 以外では珍しい存在です。
sgcQUIC は sgcWebSockets のサポートマトリックスに準じており、Delphi 7 から Delphi 13 Florence まで、および対応する C++ Builder の各バージョンをサポートします。さらに、同じ API を備えた .NET 実装も用意されています。体験版インストーラーは IDE のバージョンごとに用意されており、QUIC と HTTP/3 のコンポーネントがすでに含まれているため、別途ダウンロードする必要はありません。
はい、OpenSSL 3.5 以降が必要です。QUIC は OpenSSL 3.5 でネイティブエンジンとして導入され、sgcQUIC は OpenSSL のロード時にこれを自動的に検出します。同梱の 3.5 バイナリを使うと qmBuiltin エンジンが有効になり、1 つのコネクション上で複数の独立したストリームを扱えます。これがコンポーネントの前提としているエンジンです。quictls 系のビルド向けに qmCustom という経路も用意されていますが、こちらは 1 コネクションあたり 1 ストリームに限定されます。
主なターゲットは Win32、Win64、Linux64 で、加えて OpenSSL 3.5 の QUIC エンジンが利用できる環境であれば macOS、iOS、Android でも動作します。QUIC は通常ポート 443 の UDP 上で動作するため、クライアントとサーバーの間の経路が UDP を許可している必要がある点にご注意ください。企業ネットワークの中には今も UDP を遮断しているところがあり、そのため HTTP/3 クライアントは HTTP/2 にフォールバックします。
WebTransport(RFC 9220)は、ブラウザーとサーバー間のトラフィックにおける WebSocket のモダンな後継です。HTTP/3 上で Extended CONNECT を用いてネゴシエートされ、アプリケーションに QUIC のストリームと信頼性のないデータグラムを直接渡すため、低遅延な双方向ワークロードに適しています。sgcQUIC は builtin エンジン上で、クライアント側とサーバー側の両方で WebTransport セッションに対応しています。
sgcQUIC は sgcWebSockets Enterprise のアドオンで、All-Access バンドルにも含まれています。Single、Team、Site の各ライセンスをご用意しており、いずれも完全なソースコードと 1 年間のアップデートが付属します。ご購入前に、体験版をダウンロードしてご自身のプロジェクトで 4 つのコンポーネントすべてをお試しください。
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

IDE を離れずに QUIC と HTTP/3 を実装

モダンな Web が向かっているトランスポートを、すでに使い慣れた言語のまま、あなたの Delphi、C++ Builder、.NET アプリケーションに追加できます。

eSeGeCe のその他の製品

sgcQUIC を、他の Delphi、C++ Builder、.NET コンポーネントライブラリと組み合わせましょう。

sgcWebSockets

エンタープライズ向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI/LLM コンポーネントです。sgcQUIC は sgcWebSockets Enterprise のアドオンです。

詳しく見る →

sgcHTML

Delphi、C++ Builder、.NET 向けの、データアウェアなサーバーサイド HTML/UI コンポーネント 89 種類。Bootstrap 5 と htmx を採用しています。

詳しく見る →

sgcSign

エンタープライズ向けデジタル署名 — XAdES、PAdES、CAdES、ASiC に対応し、10 種類のキープロバイダーと EU 21 か国のプロファイルを備えています。

詳しく見る →

sgcOpenAPI

OpenAPI 3.0 パーサーと SDK ジェネレーター。任意の OpenAPI 仕様を、数秒で厳密に型付けされた Delphi クライアントに変換します。

詳しく見る →

sgcBiometrics

Delphi と C++ Builder 向けの、ネイティブな Windows Hello、指紋認証、Windows Biometric Framework コンポーネント。

詳しく見る →

sgcIndy

モダンな TLS、IPv6、HTTP/2 に対応した更新版 Indy TCP/IP コンポーネント。Delphi 7 から 13 まで対応します。

詳しく見る →