eSeGeCe — Delphi & .NET 向けエンタープライズ通信コンポーネント
注目 · sgcHTTP

HTTP/2 と gRPC が、Delphi のネイティブコンポーネントに

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

  • 5 つのクライアントクラス
  • HTTP/2 · gRPC · Google Cloud
  • 多重化ストリーム、HPACK、ALPN
  • Delphi 7 から 13 · C++ Builder

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

sgcHTTP は単体のパッケージです。土台となる sgcWebSockets Core ランタイムを同梱し、すべてのライセンスに完全なソースコードが付属するため、ワイヤーレベルの実装をそのままご自身のデバッガーでステップ実行できます。

2 パレットコンポーネント TsgcHTTP2ClientTsgcGRPCClient が、パレットの 1 ページにまとまっています。
5 クライアントクラスの総数 HTTP/2、gRPC、そして 3 つの Google Cloud クライアントです。
3 Google Cloud サービス Pub/Sub、Calendar、Firebase Cloud Messaging。すべて素の HTTPS です。
1 単体のインストーラー sgcWebSockets Core ランタイムと HTTP/TLS レイヤーが、どちらもパッケージ内に同梱されています。
100% ソースコード同梱 すべてのライセンスに、5 つのクライアントすべてと同梱ランタイムの完全なソースが付属します。
sgcHTTP

Delphi と C++ Builder 向けの HTTP/2、gRPC、Google Cloud のクライアントコンポーネントです。sgcWebSockets Core ランタイムを同梱した単体パッケージで、完全なソースコードが付属し、ロイヤリティフリーで配布できます。

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

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

HTTP/2

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

TsgcHTTP2Client は HTTP/2(RFC 9113)を話します。複数のリクエストが独立したストリームとして 1 つの TCP 接続を共有するため、1 つの遅いレスポンスが後続をブロックすることはありません。ヘッダーは HPACK で圧縮され、h2 プロトコルは TLS ハンドシェイク中に ALPN で交渉されます。これが、このコンポーネントが標準の Indy ライブラリではなく sgcCustomIndy の上に構築されている理由です。ConnectGetPostPutPatchDeleteOptions まで、すべての動詞をカバーしており、それぞれ同期呼び出しと Async の対を備えています。

HTTP/2 クライアントを見る →
gRPC

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

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

gRPC クライアントを見る →
Google Cloud

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

さらに 3 つのクラスが、Google サービスアカウントで認証された素の HTTPS 経由で Google Cloud に到達し、いずれも sgcCustomIndy を必要としません。TsgcHTTPGoogleCloud_PubSub_ClientTsgcHTTPGoogleCloud_Calendar_ClientTsgcHTTPGoogleCloud_FCM_Client です。

できることを見る →
エスケープハッチ

サーバープッシュとチャンク化されたボディ

イベントが接続のライフサイクルを伝えます。OnHTTP2ConnectOnHTTP2Response、チャンク化されたボディ向けの OnHTTP2ResponseFragment、サーバープッシュ向けの OnHTTP2PushPromiseOnHTTP2GoAwayOnHTTP2Disconnect です。ストリームのライフサイクルは、何も隠されていません。

HTTP/2 の詳細を見る →
クロスプラットフォーム

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

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

機能マトリックス →

各コンポーネントのリファレンスページ:

HTTP/2 と gRPC を並べて

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

uses
  sgcHTTP;
var
  HTTP2: TsgcHTTP2Client;
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');
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;
uses
  sgcHTTP;
var
  GRPC: TsgcGRPCClient;
begin
  // 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.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;

Object Pascal でも C++ Builder でも同じ形です。完全な機能マトリックス →

最初に知っておきたい 2 つのこと

sgcHTTP が求めるもの、そして求めないものです。どちらの答えも短く、細かい注記の中ではなく、このページに書いてあります。

クライアントごとの依存関係
クライアント                          sgcCustomIndy が必要か
TsgcHTTP2Client                     要、ALPN のため
TsgcGRPCClient                      要、TsgcHTTP2Client 上で動作
TsgcHTTPGoogleCloud_PubSub_Client   不要、素の HTTPS
TsgcHTTPGoogleCloud_Calendar_Client 不要、素の HTTPS
TsgcHTTPGoogleCloud_FCM_Client      不要、素の HTTPS

HTTP/2 は TLS ハンドシェイク中に ALPN で h2 を交渉します。
  RAD Studio に同梱されている標準の Indy ライブラリには
  ALPN のサポートがないため、HTTP/2 と gRPC はどちらも
  代わりに sgcCustomIndy の上に構築されています。

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

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

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

HTTP/2 の ALPN 交渉は、標準の Indy ライブラリでは対応していないため、TsgcHTTP2Client と、その延長にある TsgcGRPCClient は、代わりに sgcCustomIndy の上に構築されています。sgcHTTP を注文すると自動的にカートへ追加されます。すでにライセンスをお持ちですか? チェックアウト時に削除してください。

Google Cloud には HTTPS だけが必要です

3 つの Google Cloud クライアントは、Google サービスアカウントのプロジェクト ID、クライアントメール、秘密鍵で認証を行い、Core ランタイムの素の HTTPS スタック上で REST API を呼び出します。ネイティブライブラリも sgcCustomIndy も不要です。

Delphi と C++ Builder

sgcHTTP は、Delphi 7 から RAD Studio 13 まで、そして C++ Builder をターゲットにしています。同じコンポーネントは sgcWebSockets Enterprise の中にも含まれているため、既存の Enterprise/All-Access ライセンスですでにカバーされている場合があります。無料体験版インストーラーは sgcWebSockets All-Access の体験版なので、今日にも 5 つのクラスすべてを評価できます。

ALPN HPACK Protocol Buffers サービスアカウント JWT 完全なソース

すべてのコンポーネントとプロパティ →

sgcHTTP はベンダー SDK をラップするのではなく、公開された HTTP/2、gRPC、Google Cloud REST の仕様を直接実装しているため、ストリーム、ヘッダー、RPC、プッシュ通知はすべて第一級のメソッドとイベントであり、完全なソースコードにより、その間に何もブラックボックスは存在しません。

12 個のライブラリ、1 つのツールボックス

sgcHTTP は、Delphi、C++ Builder、.NET 向けの eSeGeCe コンポーネントライブラリ 12 製品のひとつです。共通の設計思想を持ち、完全なソースが付属し、ロイヤリティフリーで配布できます。

sgcHTTP

Delphi と C++ Builder 向けの HTTP/2 クライアント、gRPC クライアント、そして Google Cloud の Pub/Sub、Calendar、FCM クライアントです。単体製品で、sgcWebSockets Core ランタイムを同梱しています。

詳しく見る →

sgcAuth

Delphi と C++ Builder 向けの OAuth2 クライアント、JWT クライアント、WebAuthn 対応。単体製品で、sgcWebSockets Core ランタイムを同梱しています。

詳しく見る →

sgcWebSockets

Delphi、C++ Builder、Lazarus、.NET 向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI、そして 30 を超える API 統合。Enterprise エディションには gRPC も含まれています。

詳しく見る →

sgcMQ

Delphi と C++ Builder 向けの MQTT、AMQP 0.9.1 および 1.0、Apache Kafka、STOMP のクライアントコンポーネント。単体製品で、sgcWebSockets Core ランタイムを同梱しています。

詳しく見る →

sgcSocial

Delphi と C++ Builder 向けの Telegram および WhatsApp Business のクライアントコンポーネント。単体製品で、sgcWebSockets Core ランタイムを同梱しています。

詳しく見る →

sgcHTML

Delphi、C++ Builder、.NET 向けの、Bootstrap 5 と htmx を基盤とするサーバーサイド HTML / UI コンポーネントです。

詳しく見る →

sgcQUIC

生の QUIC トランスポートと HTTP/3 のクライアントおよびサーバー、WebTransport 対応。sgcWebSockets Enterprise のアドオンです。

詳しく見る →

sgcAI

Delphi と C++ Builder 向けの AI、LLM、MCP コンポーネント。1 つのコンポーネントで 7 社の LLM プロバイダーに対応し、MCP、埋め込み、音声も利用できます。単体製品で、sgcWebSockets Core ランタイムを同梱しています。

詳しく見る →

sgcOpenAPI

OpenAPI 3.x パーサー、ネイティブ Pascal SDK ジェネレーター、OpenAPI サーバーコンポーネント、そして 1,195 以上のビルド済みクラウド SDK。

詳しく見る →

sgcSign

ドキュメントには XAdES、PAdES、CAdES、ASiC、コードには Authenticode、ClickOnce、NuGet、VSIX。

詳しく見る →

sgcBiometrics

Delphi と C++ Builder 向けの Windows Hello、指紋センサー、Windows Biometric Framework。

詳しく見る →

sgcIndy

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

詳しく見る →

価格とライセンスを見る 体験版をダウンロード

開発者の声

世界中の Delphi、C++ Builder、Lazarus、.NET 開発者から信頼されています。

Your sgcWebSockets library is very useful and easy to setup. Keep up the good work!

Simone Moretti Delphi Developer

sgcWebSockets is amazing and your support is the best!

Christian Meyer Founder & CTO

Thanks so much for your help and support, I love your components.

Mark Steinfeld CTO

現在は eSeGeCe の HTTP/2 & gRPC ビューを表示しています。

別の切り口を見る →

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

多重化された HTTP/2、ストリーミング gRPC、そして 3 つの Google Cloud クライアントを 1 つに。sgcWebSockets Core ランタイムを同梱し、完全なソースコードも同梱済みです。