sgcIndy 与 Indy 对比 — 有何不同
sgcIndy 是 Indy 库经维护、修补和现代化后的发行版,并非分支或替代品。本页面列出了 sgcIndy 在 Indy Pit Crew(Remy Lebeau、Hadi Hariri 和 Indy 工作组)原始 Indy 工作基础上新增的内容,以及保持不变的部分。
sgcIndy 是 Indy 库经维护、修补和现代化后的发行版,并非分支或替代品。本页面列出了 sgcIndy 在 Indy Pit Crew(Remy Lebeau、Hadi Hariri 和 Indy 工作组)原始 Indy 工作基础上新增的内容,以及保持不变的部分。
每个选项的一段简介,并附有官方文档或代码库的链接。详细对比见下方矩阵。
Indy Pit Crew — Remy Lebeau、Hadi Hariri、Indy 工作组 · 双重许可:Indy Modified BSD 或 Indy MPL
原版 Internet Direct 库,采用双重许可(Modified BSD / MPL),由 Indy Pit Crew 在 GitHub 的 IndySockets/Indy 上维护。随每个最新 RAD Studio 安装版本附带,涵盖 TCP/UDP/原始套接字以及 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 · 免费社区版(已编译)· All-Access(含源代码)
经维护、修补和现代化的 Indy 库发行版。约 160 个以 sgcId* 为前缀的封装 Indy 组件,叠加在原始 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 的绑定(当前 LTS 至 2023 年) | — | |
| OpenSSL 3.0.x 支持 基于提供程序的 OpenSSL 3.x API 绑定 | — | |
| TLS 1.3 可在 SSL 选项中选择 TLS 1.3 | — | |
| SSH 客户端组件(TIdSSHClient) SSH 2.0 客户端(IdSSHClient.pas),支持密钥和密码身份验证、exec / shell 通道和端口转发 — 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 版本的打包 DCU 和 BPL 二进制文件,以及 C++ Builder 2007 至 C++ Builder 13。社区版为二进制文件集;All-Access 版包含完整源代码。
在 Indy TCP / UDP / HTTP / FTP / SMTP / POP3 / IMAP 组件基础上进行的保活、超时和缓冲区管理调整。
sgcIndy 与 sgcWebSockets、sgcOpenAPI、sgcSign 和 sgcBiometrics 共享更新节奏。单个 All-Access 订阅包含所有五款产品的源代码。
两个选项均基于相同的 Indy 代码库。选择通常取决于您所面向的 OpenSSL ABI、是否需要 TLS 1.3,以及预构建的二进制文件对您的构建系统是否重要。
当您希望使用由 Indy Pit Crew(Remy Lebeau 和 Indy 工作组)维护的原始 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。社区版免费;源代码版包含在 eSeGeCe All-Access 订阅中,与 sgcWebSockets、sgcOpenAPI、sgcSign 和 sgcBiometrics 一同提供。
两个选项均允许在商业应用中免版税使用。区别在于分发渠道以及捆绑内容。
采用 Indy Modified BSD 许可证或 Indy MPL 许可证双重授权,由开发者选择(参见项目 README)。完整的 Pascal 源代码在 GitHub 的 IndySockets/Indy 上;可下载标记版本或直接从 master 构建。项目页面上没有已编译的二进制文件 — 您需要针对 Delphi / C++ Builder / Lazarus 工具链从源代码构建。
两个版本。社区版免费:为所有受支持的 Delphi / C++ Builder 版本提供已编译的 DCU 和 BPL 二进制文件,可在商业应用中免版税部署,无需注册。源代码版包含在 eSeGeCe All-Access 订阅中 — 完整的 Pascal 源代码以及 sgcWebSockets Enterprise、sgcOpenAPI、sgcSign 和 sgcBiometrics 集于一包。
上方矩阵中的每个单元格均可追溯至以下官方文档页面、代码库或源文件之一。所有 URL 在撰写时均已通过 HEAD 检查。