sgcWebSockets Core 向けアドオン Delphi 7 から 13 & C++ Builder

sgcCustomIndy: sgcWebSockets Core 向けのカスタム Indy ライブラリ

Indy は、sgcWebSockets が一部のコンポーネントの土台として利用している、オープンソースのクライアント・サーバー通信ライブラリです。標準の Indy ライブラリは ALPN に対応せず、OpenSSL 1.1.1 や 3.x を介した TLS 1.3 にも対応していません。そのため sgcWebSockets Enterprise には、それらに対応するカスタムビルドの Indy が同梱されています。sgcCustomIndy は、その同じカスタムビルドを sgcWebSockets Core にもたらします。これがなければ、入手するには Enterprise エディションへ移行するしかありません。

完全なソースコード
アンインストールは不要
並べてインストール 1 つの IDE カスタムユニットには sgc の接頭辞が付くため、両方のライブラリが同じ IDE の中で共存します
標準の Indy IdGlobal.pas
カスタム Indy sgcIdGlobal.pas
0 アンインストールが必要な Indy ライブラリ IDE にすでにある Indy はインストールされたまま残ります
0 Delphi 7 での Indy 10 のインストール ライブラリはパックに同梱されています
3 標準の Indy にない機能 ALPN、OpenSSL 1.1.1 と 3.x 上の TLS 1.3、静的リンク
1 静的 OpenSSL 用のユニット uses 節に sgcIdSSLOpenSSL_Static を追加
2 静的リンクの対象 Windows 32 ビットと 64 ビット、Delphi XE2 以降

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

このパックが誰のためのものか、そして誰がすでに持っているのか。どちらの答えも短くまとまります。

単独の注文ではなく、アドオンです

sgcCustomIndy は sgcWebSockets Core のライセンスに付随します。単独で注文することはできず、Core の注文の中で最初におすすめするアドオンとして表示されます。これは sgcAIsgcMQsgcSocialsgcAuthsgcHTTP の各パックと同じ注文の流れです。

完全なソースコードがライセンスに含まれるため、Indy のユニットもライブラリの他の部分とまったく同じように、ご自身のプロジェクトでコンパイルし、ステップ実行できます。

まず確認

Enterprise と All-Access には最初から含まれます

カスタム Indy ライブラリは sgcWebSockets Enterprise と eSeGeCe All-Access に含まれており、sgcVer.incSGC_CUSTOM_INDY コンパイラ定義によって既定で有効になっています。どちらかをお持ちであれば、このページの内容はすでにすべて手元にあり、追加するものはありません。

Standard と Professional の各エディションは標準の Indy ライブラリを使用します。エディションのアップグレードとこのパックを比べている場合は、どのエディションが必要かをご覧ください。

標準の Indy ライブラリにはできない 3 つのこと

以下の項目はいずれも、その上に載るコンポーネントではなく、Indy 層そのものの機能です。だからこそ、Indy ライブラリを入れ替えることでこれらが有効になります。

ALPNプロトコルネゴシエーション

HTTP/2 の土台となる拡張

HTTP/2 は TLS ハンドシェイクの中でネゴシエートされます。クライアントが話せるプロトコルを提示し、サーバーがその中から 1 つを選びます。このネゴシエーションが Application-Layer Protocol Negotiation で、HTTP コンポーネントからは手の届かない TLS 層の内部で行われます。標準の Indy ライブラリはこれに対応していないため、ALPN、ひいては HTTP/2 を利用可能にするのはカスタム Indy ライブラリです。

ALPN HTTP/2
TLS 1.3OpenSSL 1.1.1 と 3.x

最新の OpenSSL ブランチに、ようやく手が届く

TLS 1.3 には OpenSSL 1.1.1 または OpenSSL 3.0.0 が必要ですが、標準の Indy ライブラリはこれらのブランチに対応していません。カスタム Indy ライブラリは対応しているため、その上に構築したクライアントやサーバーは、古い OpenSSL API が提供する範囲で頭打ちになることなく、TLS 1.3 を必須とするエンドポイントとネゴシエートできます。

TLS 1.3 OpenSSL 1.1.1 OpenSSL 3.x
静的 OpenSSLWindows、Delphi XE2 以降

実行ファイルの中に OpenSSL を格納

OpenSSL は、実行時に libcryptolibssl の DLL から読み込む代わりに、アプリケーションへ直接リンクできます。これにより、TLS を使うアプリケーションを 1 つのファイルとして配布できます。有効になるのはカスタム Indy ライブラリを使用しているときだけで、それを提供するのがこのパックです。対象は Delphi XE2 以降の Windows 32 ビットと 64 ビットで、詳しくはこの先の節で説明します。

sgcIdSSLOpenSSL_Static Windows のみ Delphi XE2+

お使いの Indy の隣に並びます

IDE の Indy ライブラリを差し替える作業は、誰もやりたくないところです。このパックはそれを求めません。カスタム Indy のファイルは sgc の接頭辞を付けて改名されており、IdGlobalsgcIdGlobal になります。両方のバージョンが問題なく共存します。

IDE にすでにある標準の Indyこのパックが追加するカスタム Indyそれが意味すること
IdGlobal.passgcIdGlobal.pasユニット名が異なるため、検索パス上で衝突しません
IdTCPClient.passgcIdTCPClient.pas両方のライブラリが同じ IDE、同じプロジェクトでコンパイルできます
IdSSLOpenSSL.passgcIdSSLOpenSSL.pas既存の TLS コードは、これまで使ってきたユニットをそのまま使い続けます
アンインストールは不要

IDE にすでに入っている Indy は、インストールされたまま、登録されたまま残ります。パッケージを削除して後で戻したり、IDE のプロファイルを 2 つ抱えたりする手順はありません。

既存のプロジェクトはそのまま

標準の Indy ライブラリに対してビルドしているものは、バイト単位で同じユニットに対して、これまでどおりコンパイルされます。カスタムビルドは追加されるもので、置き換えでもなければ、IDE に適用されるアップグレードでもありません。

コンパイラ定義は 1 つだけ

カスタム Indy ライブラリを使うかどうかは、ソースフォルダーにある sgcVer.incSGC_CUSTOM_INDY で制御します。定義は 1 つだけなので、カスタムビルドを元に戻すのも 1 行の変更で済みます。

いつもどおり、完全なソース

改名された Indy のユニットは、ライセンスにソースとして含まれます。プロジェクトの設定でコンパイルされ、ライブラリの他の部分と同じようにデバッガーでステップ実行できます。

Indy 10 を別途インストールする必要はありません

Delphi 7 には古い Indy が同梱されています。そのままでは、sgcWebSockets を使うのに、まず自分で Indy 10 を IDE へインストールしなければなりません。この手順が、1 行もコードを書かないうちに多くの人の足を止めてきました。カスタム Indy ライブラリが同梱されることで、その手順はなくなります。

これまでの前提条件

Indy 10 を入手し、それが同梱されていない Delphi 7 の IDE へインストールし、パッケージをビルドできる状態にしてから、ようやく sgcWebSockets に取りかかります。本当にやりたかった作業の前に片づける、まったく別の仕事です。

Delphi 7 のコードをいまも保守している現場では、この前提条件の有無が、そもそもコンポーネントライブラリを評価するかどうかを左右することも少なくありません。

このパックがある場合

カスタム Indy ライブラリはパックに同梱され、他のすべてと同じソースフォルダーに置かれます。探すべき Indy 10 も、IDE へインストールする Indy 10 も、コンポーネントとバージョンを合わせ続ける Indy 10 もありません。

ここで扱っているのは Indy 10 の前提条件だけです。OpenSSL の静的リンクは別の機能で、対象は Windows と Delphi XE2 以降なので、Delphi 7 には当てはまりません。

ユニットは 1 つ、配布するファイルも 1 つ

設定は何もありません。プロジェクトの uses 節、たとえばメインの .dprsgcIdSSLOpenSSL_Static を追加すれば、次に実行したときから、クライアントとサーバーのどちらのコンポーネントでも、実行ファイルにリンクされた OpenSSL が使われます。

// Project1.dpr
uses
  sgcIdSSLOpenSSL_Static;

// 設定はこれで全部です。有効にするコンパイラ指令も、
// 選ぶべき OpenSSL API のバージョンもありません。このユニットを外せば、
// アプリケーションは以前とまったく同じように OpenSSL の DLL を読み込みます。
プラットフォーム この形式のオブジェクトファイルをリンクできる環境
Windows 32 ビット Windows 64 ビット macOS iOS Android
コンパイラ それより古いバージョンでは E2045 Bad object file format が報告されます
Delphi XE2 以降 Delphi 7 から XE
前提条件 これがなければ静的リンクは効果がありません
カスタム Indy ライブラリを使用中 SGC_CUSTOM_INDY を定義
リンクされる OpenSSL 最新の OpenSSL 修正を取り込むため、随時更新されます
OpenSSL 3.5.7

静的リンクを利用できないバージョンやプラットフォームでも、何も壊れません。アプリケーションはこれまでどおり OpenSSL の DLL を読み込み続けるので、同じソースがどこでもビルドできます。

エディションごとに使われる Indy

カスタム Indy ライブラリは新しいものではありません。sgcWebSockets Enterprise がずっと基盤としてきたもので、このパックは Core からそこへ至る道筋です。

お持ちのライセンスIndy ライブラリ備考
sgcWebSockets Standard標準ALPN なし、OpenSSL 1.1.1 や 3.x 上の TLS 1.3 もなし
sgcWebSockets Professional標準ALPN なし、OpenSSL 1.1.1 や 3.x 上の TLS 1.3 もなし
sgcWebSockets Enterpriseカスタム同梱、既定で有効
eSeGeCe All-Accessカスタム同梱、既定で有効
sgcWebSockets Core 単体標準このパックが変えるのはここです
sgcWebSockets Core と sgcCustomIndyカスタムEnterprise が使うものと同じカスタムビルド

sgcIndy とは別の製品です

sgcCustomIndy は、既存の Indy の隣に置かれ、sgcWebSockets のコンポーネントから使われる sgc 接頭辞付きのビルドです。sgcIndy は、ユニットを元の名前のまま収録した独立した Indy パッケージ一式で、IDE の Indy と置き換えてインストールすることで、SMTP や FTP といった標準の Indy コンポーネントでも同じ最新の TLS を利用できます。別の製品であり、役割も異なります。

Core の注文時に追加できます

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

sgcCustomIndy

€149

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

  • sgcWebSockets Enterprise が使うカスタム Indy ライブラリ
  • ALPN、そしてそれによる HTTP/2
  • OpenSSL 1.1.1 と 3.x 上の TLS 1.3
  • Windows での OpenSSL 静的リンク、Delphi XE2 以降
  • sgc 接頭辞付きのユニットなので、インストール済みの Indy はそのまま
  • Delphi 7 で Indy 10 の別途インストールは不要
  • 完全なソースコード
  • 1 年間のアップデート

sgcCustomIndy 専用の注文ページはありません。このパックが注文の起点になることはないからです。sgcWebSockets Core の注文の中で最初におすすめするアドオンとして提示されるので、sgcAI や sgcMQ、sgcSocial を注文するついでにワンクリックで追加でき、同じライセンスに含まれて届きます。sgcAuth の WebAuthn 対応と sgcHTTP の HTTP/2 および gRPC クライアントは、どちらもこれを必要とします。そのため、この 2 つのパックのいずれかを注文すると、sgcCustomIndy が自動的にカートへ追加されます。Enterprise や All-Access ですでにお持ちの場合は、外していただけます。

すでに sgcWebSockets Enterprise または eSeGeCe All-Access をお使いですか。カスタム Indy ライブラリはすでにお手元にあります。これらのエディションに含まれる内容は sgcWebSockets の価格をご覧ください。

3,000+開発者
20+
761+コンポーネント
30+API 連携
5プラットフォーム
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

Indy 層を、最新の状態へ

ALPN、そしてそれによる HTTP/2、OpenSSL 1.1.1 と 3.x 上の TLS 1.3、Windows では実行ファイルの中にリンクされた OpenSSL。そのすべてが、お使いの Indy の隣で動きます。アンインストールは不要で、Delphi 7 に Indy 10 をインストールする必要もありません。

eSeGeCe のその他の製品

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

sgcWebSockets

ライブラリの全機能です。WebSocket のクライアントとサーバー、HTTP/2、IoT、P2P、AI の各コンポーネントを備えます。Enterprise はこのカスタム Indy ライブラリの上に構築されています。

詳しく見る →

sgcIndy

ユニットを元の名前のまま収録した Indy パッケージ一式です。IDE の Indy と置き換えてインストールすることで、SMTP や FTP なども最新の TLS を利用できます。

詳しく見る →

sgcAI

AI、LLM、MCP のコンポーネントです。1 つのチャットコンポーネントから OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral を利用できます。

詳しく見る →

sgcMQ

ネイティブな MQTT、AMQP 0.9.1、AMQP 1.0、Apache Kafka、STOMP のクライアントです。単体で動作し、sgcWebSockets Core のランタイムを同梱しています。

詳しく見る →

sgcSocial

WhatsApp Business Cloud API と Telegram TDLib のクライアントです。単体で動作し、sgcWebSockets Core のランタイムを同梱しています。

詳しく見る →

sgcAuth

OAuth2 クライアント、JWT クライアント、WebAuthn 対応です。単体で動作し、sgcWebSockets Core のランタイムを同梱しています。

詳しく見る →

sgcHTTP

HTTP/2 クライアント、gRPC クライアント、Google Cloud Pub/Sub、Calendar、FCM の各クライアントです。単体で動作し、sgcWebSockets Core のランタイムを同梱しています。

詳しく見る →

sgcQUIC

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

詳しく見る →

sgcHTML

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

詳しく見る →

sgcSign

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

詳しく見る →

sgcOpenAPI

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

詳しく見る →