sgcIndy と Indy の違い
sgcIndy は、Indy ライブラリのメンテナンス・パッチ適用・近代化を行ったディストリビューションであり、フォークや置き換えではありません。本ページでは、Indy Pit Crew (Remy Lebeau、Hadi Hariri、Indy Working Group) による元の Indy 上に sgcIndy が追加する内容と、変わらない部分を正確に示します。
sgcIndy は、Indy ライブラリのメンテナンス・パッチ適用・近代化を行ったディストリビューションであり、フォークや置き換えではありません。本ページでは、Indy Pit Crew (Remy Lebeau、Hadi Hariri、Indy Working Group) による元の Indy 上に sgcIndy が追加する内容と、変わらない部分を正確に示します。
各選択肢の概要を 1 段落でまとめ、公式ドキュメントやリポジトリへのリンクを示します。詳細な比較は下のマトリックスをご覧ください。
Indy Pit Crew — Remy Lebeau、Hadi Hariri、Indy Working Group · デュアルライセンス: Indy Modified BSD または Indy MPL
オリジナルの Internet Direct ライブラリで、デュアルライセンス (Modified BSD / MPL) のもと、Indy Pit Crew が GitHub の IndySockets/Indy で保守しています。最近の RAD Studio インストールには標準で同梱され、TCP/UDP/raw ソケットに加え、120 以上の上位プロトコルクライアントとサーバー (HTTP、FTP、SMTP、POP3、IMAP、NNTP、IRC など) をカバーします。現在の OpenSSL 統合 (IdSSLOpenSSL.pas / IdSSLOpenSSLHeaders.pas) は OpenSSL 1.0.x ABI を対象としており、TLS バージョン列挙型は TLSv1.2 までです。SASL OAuth2 / XOAUTH2 は IdSASLOAuth.pas 経由で提供されます。
eSeGeCe · 無料 Community (コンパイル済み) · All-Access (ソース)
Indy ライブラリのメンテナンス・パッチ適用・近代化を行ったディストリビューションです。元の Indy ソースの上に、sgcId* プレフィックスでラップされた約 160 個の Indy コンポーネントを重ねています。最新の OpenSSL バインディング (1.0.x に加えて 1.1.x と 3.0.x)、TLS 1.3、Delphi 7 から RAD Studio 13、C++ Builder 2007 から C++ Builder 13 向けのパッケージ配布、いくつかの接続処理の改良を追加しています。コンパイル済みバイナリは無料、完全なソースは eSeGeCe All-Access サブスクリプションに含まれます。
チェック () は、プロジェクトが現在のソースでネイティブサポートをドキュメント化していることを示します。ダッシュ (—) は、プロジェクトがネイティブには提供していないことを示します。チルダ (~) は、部分的 / アドオン経由 / 未検証であることを示します。確認内容は出典セクションをご覧ください。
| 機能 | Indy | sgcIndy |
|---|---|---|
| OpenSSL 1.0.x サポート バインディングは従来の OpenSSL 1.0.x ABI を対象 | ||
| OpenSSL 1.1.x サポート OpenSSL 1.1.x API (2023 年までの現行 LTS) 向けのバインディング | — | |
| OpenSSL 3.0.x サポート OpenSSL 3.x のプロバイダーベース API 向けのバインディング | — | |
| TLS 1.3 SSL オプションで TLS 1.3 を選択可能 | — | |
| SSH クライアントコンポーネント (TIdSSHClient) 鍵・パスワード認証、exec / shell チャネル、ポート転送に対応した SSH 2.0 クライアント (IdSSHClient.pas) — Indy 本体には含まれません | — | |
| SFTP クライアントコンポーネント (TIdSFTPClient) SSH 上の SFTP v3 クライアント (IdSFTPClient.pas)。ファイルのアップロード/ダウンロード/ディレクトリ一覧に対応 — Indy 本体は通常の FTP / FTPS のみで、SFTP は提供されません | — | |
| XOAuth2 SMTP / IMAP / POP3 RFC 7628 / Google XOAUTH2 SASL メカニズム | ||
| IPv6 ネイティブ ネイティブな IPv6 ソケットサポート | ||
| Delphi 7 と互換 オリジナルの Delphi 7 ツールチェーンでコンパイル可能 | ||
| RAD Studio 13 と互換 RAD Studio 13 Florence でコンパイル可能 | ||
| Lazarus / FPC と互換 Free Pascal / Lazarus でビルド可能 | ||
| C++ Builder と互換 C++ Builder VCL / FMX ターゲット | ||
| あらゆる Delphi / C++ Builder バージョン用の自動インストーラー インストール済みの IDE をすべて検出し、ランタイムとデザインタイムのパッケージ、ライブラリパス、BPL 検索パスを登録するワンクリックインストーラー | — | |
| コンパイル済み DCU バイナリの提供 ビルド済み DCU / BPL のダウンロード | — | |
| 完全なソースコードを同梱 開発者が Pascal ソースを利用可能 | ||
| 商用利用も無料 商用アプリへのロイヤリティフリーな配布をライセンスが許可 | ||
| 活発なメンテナンス (直近 12 か月) 直近 12 か月以内のリリースまたはタグ付け活動 | ~ | |
| eSeGeCe ライブラリと同梱 All-Access では sgcWebSockets / sgcOpenAPI / sgcSign / sgcBiometrics とともに提供 | — |
sgcIndy は Indy のコンポーネントモデルとクラス名 (sgcId* プレフィックス) を保持しつつ、最新の OpenSSL バインディング、TLS 1.3、パッケージ化されたバイナリ、eSeGeCe ライブラリの他製品と共通のリリースサイクルを重ねています。
ネイティブな Windows インストーラーが、マシンにインストールされているすべての Delphi および C++ Builder IDE を検出し、ランタイムとデザインタイムのパッケージをコンパイルして IDE に登録し、必要なライブラリ、ブラウジング、BPL 出力パスを追加します。Indy は GitHub でソースのみを配布しているため、利用者はユニットを手動でコピーし、バージョンごとにパッケージをビルドし、ライブラリパスも自分で更新する必要があります。
sgcIndy には TIdSSHClient (IdSSHClient.pas) と TIdSFTPClient (IdSFTPClient.pas) が同梱されます。鍵 / パスワード認証、exec・shell チャネル、ポート転送に対応した SSH 2.0 クライアントと、ファイルのアップロード・ダウンロード・ディレクトリ一覧に対応する SFTP v3 クライアントです。Indy 本体は通常の FTP / FTPS は提供しますが、SSH や SFTP のコンポーネントは持たないため、利用者は通常 libssh2 のラッパーや外部バイナリでギャップを埋めることになります。
従来の 1.0.x API と並んで OpenSSL 1.1.x ABI のヘッダーを提供します。これにより、オリジナルの Indy SSL ユニットにパッチを当てずに libssl-1_1 / libcrypto-1_1 にリンクできます。
OpenSSL 3.x のプロバイダーアーキテクチャ向けヘッダーを提供します。3.x ライブラリがエクスポートするバージョン検出ルーチン (OpenSSL_version_num、OpenSSL_version) も含まれます。
TIdSSLVersion 列挙型は sslvTLSv1_3 で拡張され、OpenSSL コンテキストは IsOpenSSL_TLSv1_3_Available によるランタイム検査に基づいて SSL_OP_NO_TLSv1_3 を適用または解除します。
XOAuth2 / OAuth2 Bearer SASL メカニズムをラップ済みディストリビューションに同梱しています。Indy が提供するものと同じ TIdSASLXOAuth2 と TIdSASLOAuth2Bearer クラスを、同梱の SMTP / IMAP / POP3 クライアントですぐに利用できます。
対応するすべての Delphi バージョン、および C++ Builder 2007 から C++ Builder 13 向けのパッケージ化された DCU と BPL バイナリを提供します。Community 版はバイナリセット、All-Access 版は完全なソースを含みます。
Indy の TCP / UDP / HTTP / FTP / SMTP / POP3 / IMAP コンポーネントに対するキープアライブ、タイムアウト、バッファ管理の調整を行っています。
sgcIndy は sgcWebSockets、sgcOpenAPI、sgcSign、sgcBiometrics と更新サイクルを共有します。1 つの All-Access サブスクリプションで、5 つの製品すべてのソースを利用できます。
どちらの選択肢も同じ Indy コードベースに立脚しています。通常、選択は配布対象とする OpenSSL ABI、TLS 1.3 が必要かどうか、ビルドシステムにとってビルド済みバイナリが重要かどうかで決まります。
Indy Pit Crew (Remy Lebeau と Indy Working Group) が保守するオリジナルの BSD / MPL ディストリビューションを利用したい場合、IndySockets/Indy の master ブランチに対して直接ビルドする場合、OpenSSL のデプロイメントが Indy が標準対象とする 1.0.x 系である場合、SSL オプションで TLS 1.3 が不要な場合に、Indy をお選びください。Indy は最近の RAD Studio インストールに標準で同梱されているため、依存関係の追加はありません。
Indy のコンポーネントモデルを使い続けたいものの、OpenSSL 1.1.x または 3.0.x のバインディング、SSL オプションでの TLS 1.3、Delphi 7 から RAD Studio 13 までのあらゆる Delphi / C++ Builder バージョン向けのパッケージ化されたビルド済み DCU バイナリが必要な場合に、sgcIndy をお選びください。Community 版は無料、ソースコード版は eSeGeCe All-Access サブスクリプションに sgcWebSockets、sgcOpenAPI、sgcSign、sgcBiometrics とともに含まれます。
どちらの選択肢も、商用アプリケーションでのロイヤリティフリーな利用を許可しています。違いは配布チャネルと、何が同梱されるかです。
Indy Modified BSD License または Indy MPL License のデュアルライセンスで、開発者がいずれかを選択できます (プロジェクト README より)。完全な Pascal ソースは GitHub の IndySockets/Indy にあります。タグ付きリリースをダウンロードするか、master から直接ビルドします。プロジェクトページにコンパイル済みバイナリはなく、Delphi / C++ Builder / Lazarus ツールチェーンを使ってソースからビルドします。
2 つのエディションがあります。Community 版は無料: 対応するすべての Delphi / C++ Builder バージョン向けのコンパイル済み DCU と BPL バイナリ、商用アプリへのロイヤリティフリーな配布、登録不要です。ソースコード版は eSeGeCe All-Access サブスクリプションに含まれ、完全な Pascal ソースに加えて sgcWebSockets Enterprise、sgcOpenAPI、sgcSign、sgcBiometrics を 1 つのバンドルで提供します。
上記マトリックスの各セルは、これらの公式ドキュメントページ、リポジトリ、ソースファイルのいずれかに対応しています。すべての URL は執筆時点で HEAD チェック済みです。