sgcIndy vs Indy — ce qui change

sgcIndy est une distribution maintenue, patchée et modernisée de la bibliothèque Indy, pas un fork ni un remplacement. Cette page liste exactement ce que sgcIndy ajoute par-dessus le travail original Indy de la Indy Pit Crew (Remy Lebeau, Hadi Hariri et le Indy Working Group), et ce qui reste identique.

Deux façons d'utiliser Indy

Un résumé d'un paragraphe pour chaque option, avec un lien vers la documentation officielle ou le dépôt. La comparaison détaillée est dans la matrice ci-dessous.

Indy

Indy Pit Crew — Remy Lebeau, Hadi Hariri, le Indy Working Group · Double licence : Indy Modified BSD ou Indy MPL

La bibliothèque Internet Direct originale, sous double licence (Modified BSD / MPL) et maintenue par la Indy Pit Crew sur GitHub à IndySockets/Indy. Livrée avec toutes les installations récentes de RAD Studio et couvrant TCP/UDP/sockets bruts plus plus de 120 clients et serveurs de protocoles de plus haut niveau (HTTP, FTP, SMTP, POP3, IMAP, NNTP, IRC et plus). L'intégration OpenSSL actuelle (IdSSLOpenSSL.pas / IdSSLOpenSSLHeaders.pas) cible l'ABI OpenSSL 1.0.x ; l'énumération de version TLS s'arrête à TLSv1.2. SASL OAuth2 / XOAUTH2 est fourni via IdSASLOAuth.pas.

Page officielle

Comparaison côte à côte des fonctionnalités

Un point () signifie que le projet documente un support natif dans son code source actuel. Un tiret () signifie que le projet ne le fournit pas nativement. Un tilde (~) signifie partiel / via un add-on / non vérifié — consulte la section Sources pour ce qui a été vérifié.

Crypto, protocoles, plateformes, distribution

18 lignes
Fonctionnalité Indy sgcIndy
Support OpenSSL 1.0.x Les bindings ciblent l'ABI hérité OpenSSL 1.0.x
Support OpenSSL 1.1.x Bindings pour l'API OpenSSL 1.1.x (LTS actuel jusqu'en 2023)
Support OpenSSL 3.0.x Bindings pour l'API basée sur les providers OpenSSL 3.x
TLS 1.3 TLS 1.3 sélectionnable dans les options SSL
Composant client SSH (TIdSSHClient) Client SSH 2.0 (IdSSHClient.pas) avec authentification par clé et mot de passe, canaux exec / shell et redirection de port — non fourni par Indy en amont
Composant client SFTP (TIdSFTPClient) Client SFTP v3 sur SSH (IdSFTPClient.pas) pour l'upload / download de fichiers et le listage de répertoires — Indy en amont ne fournit que FTP / FTPS simple, pas SFTP
XOAuth2 SMTP / IMAP / POP3 Mécanisme SASL RFC 7628 / Google XOAUTH2
IPv6 natif Support natif des sockets IPv6
Compatible avec Delphi 7 Se compile sur la chaîne d'outils Delphi 7 originale
Compatible avec RAD Studio 13 Se compile sur RAD Studio 13 Florence
Compatible avec Lazarus / FPC Se compile sous Free Pascal / Lazarus
Compatible avec C++ Builder Cibles C++ Builder VCL / FMX
Installeur automatique pour chaque version Delphi / C++ Builder Installeur en un clic qui détecte chaque IDE installé et enregistre les packages runtime + design-time, les chemins de bibliothèque et les chemins de recherche BPL
Binaires DCU compilés disponibles Téléchargements DCU / BPL préconçus
Code source complet inclus Code source Pascal disponible pour le développeur
Gratuit pour usage commercial La licence autorise un déploiement sans redevance dans les applications commerciales
Maintenance active (12 derniers mois) Release ou activité taguée au cours des 12 derniers mois ~
Groupé avec la bibliothèque eSeGeCe Livré aux côtés de sgcWebSockets / sgcOpenAPI / sgcSign / sgcBiometrics dans All-Access
Support natif documenté Non fourni nativement ~ Partiel / via un add-on / non vérifié

Patchs et modernisations par-dessus Indy

sgcIndy keeps the Indy component model and class names (under the sgcId* prefix), then layers on modern OpenSSL bindings, TLS 1.3, packaged binaries, and a shared release cadence with the rest of the eSeGeCe library.

Bindings OpenSSL 1.1.x

En-têtes pour l'ABI OpenSSL 1.1.x aux côtés de l'API héritée 1.0.x, pour que tu puisses lier contre libssl-1_1 / libcrypto-1_1 sans patcher les unités SSL Indy originales.

Bindings OpenSSL 3.0.x

En-têtes pour l'architecture de providers OpenSSL 3.x, y compris les routines de détection de version (OpenSSL_version_num, OpenSSL_version) que la bibliothèque 3.x exporte.

TLS 1.3 dans les options SSL

L'énumération TIdSSLVersion est étendue avec sslvTLSv1_3, et le contexte OpenSSL applique SSL_OP_NO_TLSv1_3 / l'efface en fonction du sondage runtime via IsOpenSSL_TLSv1_3_Available.

Packaging XOAuth2

Les mécanismes SASL XOAuth2 / OAuth2 Bearer sont inclus dans la distribution enveloppée — les mêmes classes TIdSASLXOAuth2 et TIdSASLOAuth2Bearer que fournit Indy, prêtes à être utilisées avec les clients SMTP / IMAP / POP3 groupés.

Distribution préconçue pour Delphi 7 à RAD Studio 13

Binaires DCU et BPL packagés pour chaque version Delphi prise en charge, plus C++ Builder 2007 à C++ Builder 13. L'édition Community est le jeu de binaires ; l'édition All-Access inclut le code source complet.

Améliorations de la gestion des connexions

Ajustements de keep-alive, de timeout et de gestion des buffers par-dessus les composants Indy TCP / UDP / HTTP / FTP / SMTP / POP3 / IMAP.

Maintenu aux côtés du reste de la bibliothèque eSeGeCe

sgcIndy partage sa cadence de mises à jour avec sgcWebSockets, sgcOpenAPI, sgcSign et sgcBiometrics. Un seul abonnement All-Access inclut le code source pour les cinq produits.

Ce qui convient honnêtement à chaque option

Les deux options reposent sur la même base de code Indy. Le choix se résume généralement à l'ABI OpenSSL contre lequel tu livres, à la nécessité ou non de TLS 1.3, et à l'importance des binaires préconçus pour ton système de build.

Utilise Indy quand…

Choisis Indy quand tu veux la distribution BSD / MPL originale maintenue par la Indy Pit Crew (Remy Lebeau et le Indy Working Group), quand tu compiles directement contre la branche master IndySockets/Indy, quand ton déploiement OpenSSL est la ligne 1.0.x que cible Indy par défaut, ou quand tu n'as pas besoin de TLS 1.3 dans les options SSL. Indy est livré avec toutes les installations récentes de RAD Studio, donc il n'ajoute rien à ton empreinte de dépendances.

Utilise sgcIndy quand…

Choisis sgcIndy quand tu veux continuer à utiliser le modèle de composants Indy mais que tu as besoin des bindings OpenSSL 1.1.x ou 3.0.x, de TLS 1.3 dans les options SSL, ou de binaires DCU préconçus packagés pour chaque version Delphi / C++ Builder de Delphi 7 à RAD Studio 13. L'édition Community est gratuite ; l'édition avec code source est incluse dans l'abonnement eSeGeCe All-Access aux côtés de sgcWebSockets, sgcOpenAPI, sgcSign et sgcBiometrics.

Comment chaque option est sous licence et distribuée

Les deux options permettent un usage sans redevance dans les applications commerciales. La différence se situe dans le canal de distribution et ce qui est groupé à côté.

Indy

Sous double licence Indy Modified BSD License ou Indy MPL License, au choix du développeur (selon le README du projet). Le code source Pascal complet est sur GitHub à IndySockets/Indy ; télécharge une release taguée ou compile directement depuis master. Il n'y a pas de binaires compilés sur la page du projet — tu compiles depuis le source contre ta chaîne d'outils Delphi / C++ Builder / Lazarus.

sgcIndy

Deux éditions. L'édition Community est gratuite : binaires DCU et BPL compilés pour chaque version Delphi / C++ Builder prise en charge, déploiement sans redevance dans les applications commerciales, pas d'inscription. L'édition avec code source est incluse dans l'abonnement eSeGeCe All-Access — code source Pascal complet plus sgcWebSockets Enterprise, sgcOpenAPI, sgcSign et sgcBiometrics dans un seul bundle.

Chaque affirmation, sourcée

Chaque cellule de la matrice ci-dessus renvoie à l'une de ces pages de documentation officielles, dépôts ou fichiers source. Toutes les URL ont été vérifiées par HEAD au moment de la rédaction.

SourceURL
sgcIndy — page produithttps://www.esegece.com/products/sgcindy/
sgcIndy — fonctionnalitéshttps://www.esegece.com/products/sgcindy/features/
sgcIndy — commande & éditionshttps://www.esegece.com/products/sgcindy/order/
sgcIndy — téléchargementhttps://www.esegece.com/products/sgcindy/download/
Tarifs eSeGeCe All-Accesshttps://www.esegece.com/pricing/
Indy — page d'accueil du projet (indyproject.org)https://www.indyproject.org/
Indy — index de la documentationhttps://www.indyproject.org/documentation/
Indy — dépôt GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — releases (dernière tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
Indy — commits de la branche masterhttps://github.com/IndySockets/Indy/commits/master
Indy — Lib/Protocols (liste des sources)https://github.com/IndySockets/Indy/tree/master/Lib/Protocols
Indy — IdSSLOpenSSLHeaders.pas (bindings OpenSSL 1.0.x)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSLHeaders.pas
Indy — IdSSLOpenSSL.pas (énum 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 (instructions de mise à niveau, documentation)https://github.com/IndySockets/Indy/wiki
RFC 7628 — mécanismes SASL pour OAuthhttps://datatracker.ietf.org/doc/html/rfc7628
RFC 8446 — le protocole TLS 1.3https://datatracker.ietf.org/doc/html/rfc8446
OpenSSL — site web du projethttps://www.openssl.org/

Essaye sgcIndy

Télécharge l'édition Community gratuite et glisse les binaires compilés dans ton projet existant basé sur Indy.