sgcIndy と Indy の違い

sgcIndy は、Indy ライブラリのメンテナンス・パッチ適用・近代化を行ったディストリビューションであり、フォークや置き換えではありません。本ページでは、Indy Pit Crew (Remy Lebeau、Hadi Hariri、Indy Working Group) による元の Indy 上に sgcIndy が追加する内容と、変わらない部分を正確に示します。

Indy を利用する 2 つの方法

各選択肢の概要を 1 段落でまとめ、公式ドキュメントやリポジトリへのリンクを示します。詳細な比較は下のマトリックスをご覧ください。

Indy

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 経由で提供されます。

公式ページ

機能の横並び比較

チェック () は、プロジェクトが現在のソースでネイティブサポートをドキュメント化していることを示します。ダッシュ () は、プロジェクトがネイティブには提供していないことを示します。チルダ (~) は、部分的 / アドオン経由 / 未検証であることを示します。確認内容は出典セクションをご覧ください。

暗号、プロトコル、プラットフォーム、配布

18 行
機能 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 とともに提供
ドキュメント化されたネイティブサポート ネイティブには提供されない ~ 部分的 / アドオン経由 / 未検証

Indy への追加パッチと近代化

sgcIndy は Indy のコンポーネントモデルとクラス名 (sgcId* プレフィックス) を保持しつつ、最新の OpenSSL バインディング、TLS 1.3、パッケージ化されたバイナリ、eSeGeCe ライブラリの他製品と共通のリリースサイクルを重ねています。

OpenSSL 1.1.x バインディング

従来の 1.0.x API と並んで OpenSSL 1.1.x ABI のヘッダーを提供します。これにより、オリジナルの Indy SSL ユニットにパッチを当てずに libssl-1_1 / libcrypto-1_1 にリンクできます。

OpenSSL 3.0.x バインディング

OpenSSL 3.x のプロバイダーアーキテクチャ向けヘッダーを提供します。3.x ライブラリがエクスポートするバージョン検出ルーチン (OpenSSL_version_numOpenSSL_version) も含まれます。

SSL オプションでの TLS 1.3

TIdSSLVersion 列挙型は sslvTLSv1_3 で拡張され、OpenSSL コンテキストは IsOpenSSL_TLSv1_3_Available によるランタイム検査に基づいて SSL_OP_NO_TLSv1_3 を適用または解除します。

XOAuth2 のパッケージ化

XOAuth2 / OAuth2 Bearer SASL メカニズムをラップ済みディストリビューションに同梱しています。Indy が提供するものと同じ TIdSASLXOAuth2TIdSASLOAuth2Bearer クラスを、同梱の SMTP / IMAP / POP3 クライアントですぐに利用できます。

Delphi 7 から RAD Studio 13 までのビルド済みディストリビューション

対応するすべての Delphi バージョン、および C++ Builder 2007 から C++ Builder 13 向けのパッケージ化された DCU と BPL バイナリを提供します。Community 版はバイナリセット、All-Access 版は完全なソースを含みます。

接続処理の改良

Indy の TCP / UDP / HTTP / FTP / SMTP / POP3 / IMAP コンポーネントに対するキープアライブ、タイムアウト、バッファ管理の調整を行っています。

eSeGeCe ライブラリの他製品と並行してメンテナンス

sgcIndy は sgcWebSockets、sgcOpenAPI、sgcSign、sgcBiometrics と更新サイクルを共有します。1 つの All-Access サブスクリプションで、5 つの製品すべてのソースを利用できます。

各選択肢に正直な適性評価

どちらの選択肢も同じ Indy コードベースに立脚しています。通常、選択は配布対象とする OpenSSL ABI、TLS 1.3 が必要かどうか、ビルドシステムにとってビルド済みバイナリが重要かどうかで決まります。

Indy が向くケース

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 インストールに標準で同梱されているため、依存関係の追加はありません。

sgcIndy が向くケース

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

Indy Modified BSD License または Indy MPL License のデュアルライセンスで、開発者がいずれかを選択できます (プロジェクト README より)。完全な Pascal ソースは GitHub の IndySockets/Indy にあります。タグ付きリリースをダウンロードするか、master から直接ビルドします。プロジェクトページにコンパイル済みバイナリはなく、Delphi / C++ Builder / Lazarus ツールチェーンを使ってソースからビルドします。

sgcIndy

2 つのエディションがあります。Community 版は無料: 対応するすべての Delphi / C++ Builder バージョン向けのコンパイル済み DCU と BPL バイナリ、商用アプリへのロイヤリティフリーな配布、登録不要です。ソースコード版は eSeGeCe All-Access サブスクリプションに含まれ、完全な Pascal ソースに加えて sgcWebSockets Enterprise、sgcOpenAPI、sgcSign、sgcBiometrics を 1 つのバンドルで提供します。

すべての記述に出典リンク

上記マトリックスの各セルは、これらの公式ドキュメントページ、リポジトリ、ソースファイルのいずれかに対応しています。すべての URL は執筆時点で HEAD チェック済みです。

出典URL
sgcIndy — 製品ページhttps://www.esegece.com/products/sgcindy/
sgcIndy — 機能https://www.esegece.com/products/sgcindy/features/
sgcIndy — 購入とエディションhttps://www.esegece.com/products/sgcindy/order/
sgcIndy — ダウンロードhttps://www.esegece.com/products/sgcindy/download/
eSeGeCe All-Access の価格https://www.esegece.com/pricing/
Indy — プロジェクトホームページ (indyproject.org)https://www.indyproject.org/
Indy — ドキュメントインデックスhttps://www.indyproject.org/documentation/
Indy — GitHub リポジトリ (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — リリース (最新タグ 10.6.3.14)https://github.com/IndySockets/Indy/releases
Indy — master ブランチのコミットhttps://github.com/IndySockets/Indy/commits/master
Indy — Lib/Protocols (ソース一覧)https://github.com/IndySockets/Indy/tree/master/Lib/Protocols
Indy — IdSSLOpenSSLHeaders.pas (OpenSSL 1.0.x バインディング)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSLHeaders.pas
Indy — IdSSLOpenSSL.pas (TIdSSLVersion 列挙型、sslvTLSv1_2)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSL.pas
Indy — IdSASLOAuth.pas (TIdSASLXOAuth2、RFC 7628)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSASLOAuth.pas
Indy — wiki (アップグレード手順、ドキュメント)https://github.com/IndySockets/Indy/wiki
RFC 7628 — OAuth 向け SASL メカニズムhttps://datatracker.ietf.org/doc/html/rfc7628
RFC 8446 — TLS 1.3 プロトコルhttps://datatracker.ietf.org/doc/html/rfc8446
OpenSSL — プロジェクトウェブサイトhttps://www.openssl.org/

sgcIndy を試す

無料の Community 版をダウンロードして、既存の Indy ベースのプロジェクトにコンパイル済みバイナリをそのまま組み込めます。