sgcIndy vs Indy — qué cambia

sgcIndy es una distribución mantenida, parcheada y modernizada de la biblioteca Indy, no un fork ni un sustituto. Esta página detalla exactamente qué añade sgcIndy al trabajo original de Indy del Indy Pit Crew (Remy Lebeau, Hadi Hariri y el Indy Working Group) y qué se mantiene igual.

Dos formas de usar Indy

Un resumen de un párrafo de cada opción, con enlace a la documentación o el repositorio oficial. La comparativa detallada está en la matriz de más abajo.

Indy

Indy Pit Crew — Remy Lebeau, Hadi Hariri, el Indy Working Group · Dual: Indy Modified BSD o Indy MPL

La biblioteca Internet Direct original, con licencia dual (Modified BSD / MPL) y mantenida por el Indy Pit Crew en GitHub en IndySockets/Indy. Se incluye con todas las instalaciones recientes de RAD Studio y cubre TCP/UDP/sockets en bruto, además de más de 120 clientes y servidores de protocolos de alto nivel (HTTP, FTP, SMTP, POP3, IMAP, NNTP, IRC y más). La integración actual de OpenSSL (IdSSLOpenSSL.pas / IdSSLOpenSSLHeaders.pas) apunta al ABI de OpenSSL 1.0.x; el enum de versión de TLS se queda en TLSv1.2. SASL OAuth2 / XOAUTH2 se proporciona a través de IdSASLOAuth.pas.

Página oficial

Comparativa lado a lado de características

Una marca () significa que el proyecto documenta soporte nativo en su código fuente actual. Un guion () significa que el proyecto no lo ofrece de forma nativa. Una tilde (~) significa parcial / mediante complemento / sin verificar; consulta la sección Fuentes para ver qué se comprobó.

Criptografía, protocolos, plataformas y distribución

18 filas
Característica Indy sgcIndy
Soporte de OpenSSL 1.0.x Los enlaces apuntan al ABI heredado de OpenSSL 1.0.x
Soporte de OpenSSL 1.1.x Enlaces para la API de OpenSSL 1.1.x (LTS actual hasta 2023)
Soporte de OpenSSL 3.0.x Enlaces para la API basada en proveedores de OpenSSL 3.x
TLS 1.3 TLS 1.3 seleccionable en las opciones de SSL
Componente cliente SSH (TIdSSHClient) Cliente SSH 2.0 (IdSSHClient.pas) con autenticación por clave y contraseña, canales exec / shell y reenvío de puertos; no se ofrece en Indy upstream
Componente cliente SFTP (TIdSFTPClient) Cliente SFTP v3 sobre SSH (IdSFTPClient.pas) para subida / descarga de archivos y listado de directorios; Indy upstream solo incluye FTP / FTPS plano, no SFTP
XOAuth2 SMTP / IMAP / POP3 Mecanismo SASL RFC 7628 / Google XOAUTH2
IPv6 nativo Soporte nativo de sockets IPv6
Compatible con Delphi 7 Compila con la cadena de herramientas original de Delphi 7
Compatible con RAD Studio 13 Compila con RAD Studio 13 Florence
Compatible con Lazarus / FPC Compila con Free Pascal / Lazarus
Compatible con C++ Builder Objetivos VCL / FMX de C++ Builder
Instalador automático para cada versión de Delphi / C++ Builder Instalador de un solo clic que detecta cada IDE instalado y registra los paquetes runtime y de diseño, las rutas de bibliotecas y las rutas de búsqueda de BPL
Binarios DCU compilados disponibles Descargas de DCU / BPL preconstruidos
Código fuente completo incluido Código fuente Pascal disponible para la persona desarrolladora
Gratis para uso comercial La licencia permite el despliegue libre de regalías en aplicaciones comerciales
Mantenimiento activo (últimos 12 meses) Lanzamiento o actividad etiquetada en los últimos 12 meses ~
Incluido con la biblioteca eSeGeCe Distribuido junto con sgcWebSockets / sgcOpenAPI / sgcSign / sgcBiometrics en All-Access
Soporte nativo documentado No se ofrece de forma nativa ~ Parcial / mediante complemento / sin verificar

Parches y modernizaciones sobre Indy

sgcIndy conserva el modelo de componentes de Indy y los nombres de clase (bajo el prefijo sgcId*), y añade encima enlaces modernos de OpenSSL, TLS 1.3, binarios empaquetados y un ritmo de lanzamientos compartido con el resto de la biblioteca eSeGeCe.

Enlaces de OpenSSL 1.1.x

Cabeceras para el ABI de OpenSSL 1.1.x junto con la API heredada 1.0.x, para que puedas enlazar contra libssl-1_1 / libcrypto-1_1 sin parchear las unidades SSL originales de Indy.

Enlaces de OpenSSL 3.0.x

Cabeceras para la arquitectura de proveedores de OpenSSL 3.x, incluidas las rutinas de detección de versión (OpenSSL_version_num, OpenSSL_version) que exporta la biblioteca 3.x.

TLS 1.3 en las opciones de SSL

El enum TIdSSLVersion se amplía con sslvTLSv1_3, y el contexto de OpenSSL aplica SSL_OP_NO_TLSv1_3 o lo limpia según la detección en tiempo de ejecución a través de IsOpenSSL_TLSv1_3_Available.

Empaquetado de XOAuth2

Los mecanismos SASL XOAuth2 / OAuth2 Bearer se incluyen en la distribución envuelta: las mismas clases TIdSASLXOAuth2 y TIdSASLOAuth2Bearer que ofrece Indy, listas para usar con los clientes SMTP / IMAP / POP3 incluidos.

Distribución preconstruida desde Delphi 7 hasta RAD Studio 13

Binarios DCU y BPL empaquetados para cada versión de Delphi compatible, además de C++ Builder 2007 hasta C++ Builder 13. La edición Community es el conjunto de binarios; la edición All-Access incluye el código fuente completo.

Ajustes en la gestión de conexiones

Ajustes de keep-alive, timeouts y gestión de buffers sobre los componentes Indy TCP / UDP / HTTP / FTP / SMTP / POP3 / IMAP.

Mantenido junto con el resto de la biblioteca eSeGeCe

sgcIndy comparte ritmo de actualizaciones con sgcWebSockets, sgcOpenAPI, sgcSign y sgcBiometrics. Una sola suscripción All-Access incluye el código fuente de los cinco productos.

Encaje honesto de cada opción

Ambas opciones se basan en el mismo código de Indy. La decisión suele reducirse a contra qué ABI de OpenSSL distribuyes, si necesitas TLS 1.3 y si te importan los binarios preconstruidos para tu sistema de compilación.

Usa Indy cuando…

Elige Indy cuando quieras la distribución original BSD / MPL mantenida por el Indy Pit Crew (Remy Lebeau y el Indy Working Group), cuando compiles directamente contra la rama master de IndySockets/Indy, cuando tu despliegue de OpenSSL sea la línea 1.0.x que Indy soporta de fábrica, o cuando no necesites TLS 1.3 en las opciones de SSL. Indy se incluye con todas las instalaciones recientes de RAD Studio, así que no añade nada a tu huella de dependencias.

Usa sgcIndy cuando…

Elige sgcIndy cuando quieras seguir usando el modelo de componentes de Indy pero necesites enlaces para OpenSSL 1.1.x o 3.0.x, TLS 1.3 en las opciones de SSL, o binarios DCU preconstruidos empaquetados para cada versión de Delphi / C++ Builder desde Delphi 7 hasta RAD Studio 13. La edición Community es gratuita; la edición con código fuente está incluida en la suscripción All-Access de eSeGeCe junto con sgcWebSockets, sgcOpenAPI, sgcSign y sgcBiometrics.

Cómo se licencia y distribuye cada opción

Ambas opciones permiten el uso libre de regalías en aplicaciones comerciales. La diferencia está en el canal de distribución y lo que se incluye con ellas.

Indy

Con licencia dual bajo la Indy Modified BSD License o la Indy MPL License, a elección de la persona desarrolladora (según el README del proyecto). El código fuente Pascal completo está en GitHub en IndySockets/Indy; descarga una versión etiquetada o compila directamente desde master. No hay binarios compilados en la página del proyecto: se compila desde el código fuente con tu cadena de Delphi / C++ Builder / Lazarus.

sgcIndy

Dos ediciones. La edición Community es gratuita: binarios DCU y BPL compilados para cada versión de Delphi / C++ Builder compatible, despliegue libre de regalías en aplicaciones comerciales y sin registro. La edición con código fuente está incluida en la suscripción All-Access de eSeGeCe: código fuente Pascal completo más sgcWebSockets Enterprise, sgcOpenAPI, sgcSign y sgcBiometrics en un solo paquete.

Cada afirmación, con enlace

Cada celda de la matriz anterior remite a una de estas páginas oficiales de documentación, repositorios o archivos fuente. Todas las URL se comprobaron con HEAD en el momento de la redacción.

FuenteURL
sgcIndy — página del productohttps://www.esegece.com/products/sgcindy/
sgcIndy — característicashttps://www.esegece.com/products/sgcindy/features/
sgcIndy — comprar y edicioneshttps://www.esegece.com/products/sgcindy/order/
sgcIndy — descargarhttps://www.esegece.com/products/sgcindy/download/
Precios de All-Access de eSeGeCehttps://www.esegece.com/pricing/
Indy — página del proyecto (indyproject.org)https://www.indyproject.org/
Indy — índice de documentaciónhttps://www.indyproject.org/documentation/
Indy — repositorio GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — lanzamientos (última etiqueta 10.6.3.14)https://github.com/IndySockets/Indy/releases
Indy — commits de la rama masterhttps://github.com/IndySockets/Indy/commits/master
Indy — Lib/Protocols (listado de fuentes)https://github.com/IndySockets/Indy/tree/master/Lib/Protocols
Indy — IdSSLOpenSSLHeaders.pas (enlaces de OpenSSL 1.0.x)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSLHeaders.pas
Indy — IdSSLOpenSSL.pas (enum 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 (instrucciones de actualización, documentación)https://github.com/IndySockets/Indy/wiki
RFC 7628 — mecanismos SASL para OAuthhttps://datatracker.ietf.org/doc/html/rfc7628
RFC 8446 — el protocolo TLS 1.3https://datatracker.ietf.org/doc/html/rfc8446
OpenSSL — sitio web del proyectohttps://www.openssl.org/

Prueba sgcIndy

Descarga la edición Community gratuita y añade los binarios compilados a tu proyecto existente basado en Indy.