sgcHTTP: Delphi、C++ Builder 向け HTTP/2、gRPC & Google Cloud コンポーネント
単体で完結する製品 HTTP/2, gRPC & Google Cloud

sgcHTTP: Delphi & C++ Builder 向け HTTP/2, gRPC & Google Cloud コンポーネント

5 つのクライアントコンポーネントが 3 つの役割をカバーします。TsgcHTTP2Client は、1 つの TLS 接続上で多重化されたストリームと HPACK ヘッダー圧縮により HTTP/2 を話します。TsgcGRPCClient はその上に構築された gRPC クライアントで、単項呼び出しとストリーミングの Protocol Buffers 呼び出しに対応します。さらに 3 つのクラスが、素の HTTPS 経由で Google Cloud の Pub/Sub、Calendar、Firebase Cloud Messaging に到達します。sgcHTTP は単体で完結しており、5 つすべての土台となる sgcWebSockets Core ランタイムを同梱しています。

完全なソースコード
Delphi 7 から 13 & C++ Builder
同梱ランタイム sgcWebSockets Core すべてのクライアントの土台となる HTTP、TLS、JSON ランタイム
HTTP/2 TsgcHTTP2Client
gRPC TsgcGRPCClient
2 パレットコンポーネント HTTP/2 クライアントと gRPC クライアント、パレットの 1 ページに集約
5 クライアントクラスの総数 HTTP/2、gRPC、そして 3 つの Google Cloud クライアント
3 Google Cloud サービス Pub/Sub、Calendar、Firebase Cloud Messaging
100% ソースコード同梱 5 つのクライアントすべてと同梱の Core ランタイム
12 か月のアップデート ライセンスが有効な間に公開されるすべてのリリース

最初に知っておきたい 2 点

sgcHTTP が求めるもの、そして求めないものです。どちらも答えは短くまとまります。

sgcHTTP は単体で完結しています

単体で完結しており、sgcWebSockets Core ランタイムが含まれています。すべてのコンポーネントがリクエストを送信する HTTP/TLS クライアントスタックと、Google Cloud のレスポンスをデコードする JSON レイヤーです。SKU も 1 つ、インストーラーも 1 つです。

すべてのライセンスに完全なソースコードが付属するため、5 つのクライアントとその土台となるランタイムは、バイナリの中に消えることなく、自分のデバッガでステップ実行できます。

5 つ中 2 つにアドオンが必要

HTTP/2 & gRPC には sgcCustomIndy が必要です

HTTP/2 は、TLS ハンドシェイク中に ALPN で h2 プロトコルを交渉しますが、RAD Studio に同梱されている標準の Indy ライブラリは ALPN に対応していません。そのため sgcHTTP の HTTP/2 クライアントと gRPC クライアントは、代わりに sgcCustomIndy の上に構築されており、sgcHTTP を注文すると自動的にカートへ追加されます。すでにライセンスをお持ちですか? チェックアウト時に削除してください。

Pub/Sub、Calendar、Firebase Cloud Messaging の 3 つの Google Cloud クライアントは、素の HTTPS です。Core ランタイムだけで動作し、sgcCustomIndy はまったく必要ありません。

2 つのパレットコンポーネントと 3 つの Google Cloud クライアント

HTTP/2 クライアントと gRPC クライアントは、sgcHTTP ユニットで宣言され、SGC HTTP パレットページに登録される非ビジュアルコンポーネントです。フォームに配置するかコードで生成し、接続オプションを設定してイベントを接続してから、型付きのリクエストメソッドを呼び出します。3 つの Google Cloud クライアントは、同じユニットにコードオンリーのクラスとして存在し、フォームに配置するものは何もありません。生成して GoogleCloudOptions を設定し、メソッドを直接呼び出すだけです。

HTTP/21 コンポーネント

1 つの TLS 接続上で多重化されるストリーム

TsgcHTTP2Client は HTTP/2(RFC 9113)を話します。複数のリクエストが独立したストリームとして 1 つの TCP 接続を共有するため、1 つの遅いレスポンスが他をブロックすることはありません。ヘッダーは HPACK で圧縮され、h2 プロトコルは TLS ハンドシェイク中に ALPN で交渉されます。これが、このコンポーネントが標準の Indy ライブラリではなく sgcCustomIndy の上に構築されている理由です。ConnectGetPostPutPatchDeleteOptions と、すべての HTTP メソッドをカバーしており、それぞれ同期呼び出しと Async の対を備えています。イベントが接続のライフサイクルを伝えます: OnHTTP2ConnectOnHTTP2Response、チャンク化されたボディ向けの OnHTTP2ResponseFragment、サーバープッシュ向けの OnHTTP2PushPromiseOnHTTP2GoAwayOnHTTP2Disconnect です。HTTP2Options がローカルの SETTINGS フレームを設定し、TLSOptionsAuthentication は sgc HTTP スタックの他の部分から引き継がれます。

TsgcHTTP2Client sgcCustomIndy が必要
gRPC1 コンポーネント

HTTP/2 クライアント上の単項呼び出しとストリーミング RPC

TsgcGRPCClient は HTTP/2 クライアントの上に構築されているため、多重化された接続を引き継ぎ、その上に gRPC のワイヤーフォーマットを追加します。HTTP/2 ストリーム上を流れる、長さプレフィックス付きの Protocol Buffers メッセージです。CallCallAsync が単項 RPC をカバーし、ServerStreamingCall が 1 つのリクエストに対するレスポンスのストリームを処理し、OpenClientStream/SendStreamMessage/CloseClientStreamOpenBidiStream/SendBidiMessage/CloseBidiStream が、クライアントストリーミングと双方向ストリーミングの RPC をカバーします。OnGRPCResponseOnGRPCStreamMessageOnGRPCStreamEnd が通信内容を届け、RetryPolicyInterceptorsServiceConfig が、呼び出し箇所に手を加えることなくリトライ動作、横断的なロジック、サービス設定を追加します。土台となる HTTP/2 クライアントと同様、ALPN のために sgcCustomIndy を必要とします。

TsgcGRPCClient sgcCustomIndy が必要
Google Cloud3 クラス

Pub/Sub、Calendar、プッシュ通知。すべて素の HTTPS

さらに 3 つのクラスが、Google サービスアカウントで認証された素の HTTPS 経由で Google Cloud サービスに到達します。いずれも sgcCustomIndy を必要としません。TsgcHTTPGoogleCloud_PubSub_Client はメッセージの発行とプル、トピック・サブスクリプション・スナップショットの管理を行います。PublishPullAcknowledgeCreateTopicCreateSubscription、そのほか Pub/Sub REST サーフェス全体です。TsgcHTTPGoogleCloud_Calendar_Client は Google Calendar API v3 をラップします。NewCalendarNewEventLoadEventsLoadCalendars、そして同期用の OnGetCalendarOnGetCalendarEvent イベントです。TsgcHTTPGoogleCloud_FCM_Client は、SendMessage という 1 回の呼び出しで Firebase プロジェクトにプッシュ通知ペイロードを送信します。3 つとも、生成して GoogleCloudOptions を設定し、メソッドを呼び出すだけのコードオンリーのクラスです。

TsgcHTTPGoogleCloud_PubSub_Client TsgcHTTPGoogleCloud_Calendar_Client TsgcHTTPGoogleCloud_FCM_Client

5 つではなく 2 つの依存関係

5 つのクラスは、土台に何を必要とするかで明確に分かれます。HTTP/2 と gRPC は ALPN を必要とし、それはつまり sgcCustomIndy が必要ということです。Google Cloud は HTTPS とサービスアカウント以上のものを必要とせず、それは同梱の Core ランタイムがすでに提供しています。

HTTP/2 は ALPN を必要とし、そのため sgcCustomIndy が必要です

Application-Layer Protocol Negotiation が、TLS ハンドシェイク中に h2 を選択しますが、RAD Studio に同梱されている標準の Indy ライブラリには ALPN のサポートがありません。そのため TsgcHTTP2Client は、eSeGeCe のカスタム Indy ビルドである sgcCustomIndy の上に構築されています。

gRPC は HTTP/2 クライアントに乗る Protocol Buffers です

TsgcGRPCClient は自分自身の接続を開きません。その Client プロパティは TsgcHTTP2Client です。単項呼び出し、サーバーストリーミング、クライアントストリーミング、双方向呼び出しは、いずれも内部では HTTP/2 ストリームとして流れます。

Google Cloud は HTTPS とサービスアカウントだけです

3 つの Google Cloud クライアントは、Google サービスアカウントのプロジェクト ID、クライアントメール、秘密鍵からなる GoogleCloudOptions.JWT で認証を行い、Core ランタイムの素の HTTPS スタック上で REST API を呼び出します。OnAuthTokenOnAuthTokenError がトークン交換を伝えます。

Core ランタイムは箱の中に入っています

単体で完結しており、sgcWebSockets Core ランタイムが含まれています。5 つのクライアントすべてが呼び出しに使う HTTP/TLS クライアントスタックを提供し、その完全なソースコードも他のすべてと同様にパッケージの一部です。

HTTP/2 と gRPC を並べて

両コンポーネントは sgcHTTP ユニットで宣言されており、TsgcGRPCClientClient プロパティを通じて自身の HTTP/2 接続を保持します。同じコードが Delphi 7 から 13、そして C++ Builder でコンパイルできます。

uses
  sgcHTTP;

var
  HTTP2: TsgcHTTP2Client;
  GRPC: TsgcGRPCClient;
begin
  // HTTP/2: multiplexed requests over one TLS connection
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'https://api.example.com';
  HTTP2.OnHTTP2Response := HTTP2Response;
  HTTP2.Active := True;

  HTTP2.GetAsync('/v1/status');

  // gRPC: built on the HTTP/2 client, unary and streaming RPC
  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client.Host := 'https://grpc.example.com';
  GRPC.OnGRPCResponse := GRPCResponse;

  GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;

procedure TForm1.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;
// include: sgcHTTP.hpp

// HTTP/2: multiplexed requests over one TLS connection
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(this);
HTTP2->Host = "https://api.example.com";
HTTP2->OnHTTP2Response = HTTP2Response;
HTTP2->Active = true;

HTTP2->GetAsync("/v1/status");

// gRPC: built on the HTTP/2 client, unary and streaming RPC
TsgcGRPCClient *GRPC = new TsgcGRPCClient(this);
GRPC->Client->Host = "https://grpc.example.com";
GRPC->OnGRPCResponse = GRPCResponse;

GRPC->CallAsync("example.OrderService", "GetOrder", RequestBytes);

void __fastcall TForm1::HTTP2Response(TObject *Sender,
    const TsgcHTTP2ConnectionClient* Connection,
    const TsgcHTTP2RequestProperty* Request,
    const TsgcHTTP2ResponseProperty* Response)
{
  Memo1->Lines->Add(Response->DataString);
}

void __fastcall TForm1::GRPCResponse(TObject *Sender,
    const TsgcGRPCResponse* aResponse)
{
  Memo1->Lines->Add(aResponse->DataString);
}

2 つのクライアントに 1 つの依存関係、残り 3 つには不要

HTTP/2 クライアントと gRPC クライアントは sgcCustomIndy の上に構築されており、sgcWebSockets 自体と同じプラットフォーム範囲をカバーします。Google Cloud クライアントは素の HTTPS のため、Core ランタイムが動作する場所であればどこでも動作します。

TsgcHTTP2Client & TsgcGRPCClient ALPN のために sgcCustomIndy の上に構築
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Google Cloud クライアント 素の HTTPS で、sgcCustomIndy は不要
Windows Win32 Windows Win64 Linux64 macOS iOS Android
IDE 対応 ソースツリーは 1 つで、設計時パッケージはバージョンごとに用意されています
Delphi 7 から 13 C++ Builder
体験版インストーラー sgcWebSockets All-Access の体験版には sgcHTTP コンポーネントが含まれています
1 つのダウンロードで 5 つのクラスすべて

体験版インストーラーをダウンロード →

単体で完結するパッケージ

sgcHTTP は単体でライセンスされ、開発者 1 名向けの €249 から始められます。すべてのライセンスに、完全なソースコード、1 年間のアップデート、更新時 50% から 70% の割引が含まれます。パック 1 つの更新で 50%、2 つで 60%、3 つ以上で 70% になります。sgcAI、sgcMQ、sgcSocial、sgcCustomIndy、sgcAuth、sgcHTTP はそれぞれ 1 パックとして数えます。sgcHTTP は All-Access バンドルにも含まれています。

sgcHTTP

€249

Single、Team、Site の各ライセンスをご用意しています。

  • 多重化と HPACK に対応した HTTP/2 クライアント
  • 単項呼び出しとストリーミング RPC に対応した gRPC クライアント
  • Google Cloud の Pub/Sub、Calendar、FCM クライアント
  • sgcWebSockets Core ランタイムを同梱
  • Delphi 7 から 13 & C++ Builder
  • 完全なソースコード
  • 1 年間のアップデート

HTTP/2 と gRPC には sgcCustomIndy アドオンが必要です。チェックアウト時に自動的に追加され、すでにライセンスをお持ちの場合は削除できます。

購入手続きには 3 つの項目が表示されます。金額 0 で計上される sgcWebSockets Core ランタイムの利用権、sgcHTTP パック本体、そして自動的に追加される sgcCustomIndy アドオンです。価格の詳細はこちら

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

ネイティブコードから、モダンな HTTP、gRPC、Google Cloud を

多重化された HTTP/2、ストリーミング gRPC、そして 3 つの Google Cloud クライアントを扱えます。ランタイムを同梱し、完全なソースコードも同梱済みです。All-Access の体験版インストーラーをダウンロードして、今日にも 5 つのコンポーネントすべてを試してみてください。

eSeGeCe のその他の製品

sgcHTTP と、Delphi、C++ Builder、.NET 向けの他のコンポーネントライブラリを組み合わせてご利用いただけます。

sgcCustomIndy

sgcHTTP の HTTP/2 クライアントと gRPC クライアントが土台とするカスタム Indy ライブラリです。ALPN、TLS 1.3、静的 OpenSSL リンクに対応します。

詳しく見る →

sgcWebSockets

フルライブラリです。WebSocket のクライアントとサーバー、HTTP/2、gRPC、IoT、P2P、AI の各コンポーネントを収録しています。Enterprise エディションには gRPC も含まれています。

詳しく見る →

sgcAI

AI、LLM、MCP のコンポーネントです。1 つのチャットコンポーネントで OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral に接続できます。

詳しく見る →

sgcMQ

ネイティブな MQTT 3.1.1/5.0、AMQP 0.9.1、AMQP 1.0、Apache Kafka、STOMP のクライアントコンポーネントで、Core ランタイムを同梱しています。

詳しく見る →

sgcSocial

WhatsApp Business Cloud API と Telegram TDLib のクライアントコンポーネントで、Core ランタイムを同梱しています。

詳しく見る →

sgcQUIC

OpenSSL 3.5 のネイティブ QUIC エンジン上に構築された、QUIC(RFC 9000)および HTTP/3(RFC 9114)のクライアント・サーバーコンポーネントです。

詳しく見る →