sgcIndy vs Indy — what's different

sgcIndy is a maintained, patched, modernised distribution of the Indy library, not a fork or a replacement. This page lists exactly what sgcIndy adds on top of the original Indy work by the Indy Pit Crew (Remy Lebeau, Hadi Hariri, and the Indy Working Group), and what stays the same.

Zwei Wege, Indy zu nutzen

Eine Kurzfassung jeder Option mit einem Link zur offiziellen Dokumentation oder zum Repository. Der detaillierte Vergleich folgt in der Matrix unten.

Indy

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

The original Internet Direct library, dual-licensed (Modified BSD / MPL) and maintained by the Indy Pit Crew on GitHub at IndySockets/Indy. Ships with every recent RAD Studio install and covers TCP/UDP/raw sockets plus 120+ higher-level protocol clients and servers (HTTP, FTP, SMTP, POP3, IMAP, NNTP, IRC and more). The current OpenSSL integration (IdSSLOpenSSL.pas / IdSSLOpenSSLHeaders.pas) targets the OpenSSL 1.0.x ABI; the TLS version enum stops at TLSv1.2. SASL OAuth2 / XOAUTH2 is provided through IdSASLOAuth.pas.

Offizielle Seite

Direkter Funktionsvergleich

A check () means the project documents native support in its current source. A dash () means the project does not provide it natively. A tilde (~) means partial / via add-on / unverified — see the Sources section for what was checked.

Kryptografie, Protokolle, Plattformen, Distribution

18 Zeilen
Funktion Indy sgcIndy
Unterstützung für OpenSSL 1.0.x Bindings zielen auf die ältere OpenSSL-1.0.x-ABI
Unterstützung für OpenSSL 1.1.x Bindings für die OpenSSL-1.1.x-API (aktuelle LTS bis 2023)
Unterstützung für OpenSSL 3.0.x Bindings für die provider-basierte OpenSSL-3.x-API
TLS 1.3 TLS 1.3 in den SSL-Optionen wählbar
SSH-Client-Komponente (TIdSSHClient) SSH 2.0 client (IdSSHClient.pas) with key & password auth, exec / shell channels and port forwarding — not provided by Indy upstream
SFTP-Client-Komponente (TIdSFTPClient) SFTP v3 client over SSH (IdSFTPClient.pas) for file upload / download / directory listing — Indy upstream only ships plain FTP / FTPS, not SFTP
XOAuth2 SMTP / IMAP / POP3 RFC 7628 / Google XOAUTH2 SASL mechanism
IPv6 nativ Native IPv6-Socket-Unterstützung
Kompatibel mit Delphi 7 Kompiliert mit der originalen Delphi-7-Toolchain
Kompatibel mit RAD Studio 13 Kompiliert in RAD Studio 13 Florence
Kompatibel mit Lazarus / FPC Baut unter Free Pascal / Lazarus
Kompatibel mit C++ Builder C++-Builder-VCL-/-FMX-Ziele
Automatischer Installer für jede Delphi-/C++-Builder-Version Ein-Klick-Installer, der jede installierte IDE erkennt und Runtime- und Design-Time-Pakete, Bibliothekspfade und BPL-Suchpfade registriert
Kompilierte DCU-Binaries verfügbar Vorgefertigte DCU-/BPL-Downloads
Vollständiger Quellcode enthalten Pascal-Quellcode steht dem Entwickler zur Verfügung
Kostenfrei für kommerzielle Nutzung Lizenz erlaubt lizenzfreien Einsatz in kommerziellen Apps
Aktive Pflege (letzte 12 Monate) Releases oder getaggte Aktivität in den letzten 12 Monaten ~
Im eSeGeCe-Bundle enthalten Wird in All-Access zusammen mit sgcWebSockets / sgcOpenAPI / sgcSign / sgcBiometrics ausgeliefert
dokumentierte native Unterstützung nativ nicht bereitgestellt ~ teilweise / per Add-on / unverifiziert

Patches und Modernisierungen auf Indy aufsetzend

sgcIndy behält das Indy-Komponentenmodell und die Klassennamen (mit dem Präfix sgcId*) bei und ergänzt darauf moderne OpenSSL-Bindings, TLS 1.3, paketierte Binaries und einen gemeinsamen Release-Rhythmus mit dem Rest der eSeGeCe-Bibliothek.

OpenSSL-1.1.x-Bindings

Header für die OpenSSL-1.1.x-ABI neben der älteren 1.0.x-API, sodass du gegen libssl-1_1 / libcrypto-1_1 linken kannst, ohne die ursprünglichen Indy-SSL-Units zu patchen.

OpenSSL-3.0.x-Bindings

Header für die Provider-Architektur von OpenSSL 3.x, inklusive der Versions-Detection-Routinen (OpenSSL_version_num, OpenSSL_version), die die 3.x-Bibliothek exportiert.

TLS 1.3 in den SSL-Optionen

Das Enum TIdSSLVersion wird um sslvTLSv1_3 erweitert, und der OpenSSL-Kontext setzt SSL_OP_NO_TLSv1_3 bzw. löscht es basierend auf einer Laufzeit-Erkennung via IsOpenSSL_TLSv1_3_Available.

XOAuth2-Paketierung

XOAuth2- / OAuth2-Bearer-SASL-Mechanismen sind in der gewrappten Distribution enthalten — dieselben TIdSASLXOAuth2- und TIdSASLOAuth2Bearer-Klassen, die Indy bereitstellt, sofort nutzbar mit den gebündelten SMTP-/IMAP-/POP3-Clients.

Vorgefertigte Distribution für Delphi 7 bis RAD Studio 13

Paketierte DCU- und BPL-Binaries für jede unterstützte Delphi-Version, plus C++ Builder 2007 bis C++ Builder 13. Die Community-Edition besteht aus dem Binary-Set; die All-Access-Edition enthält den vollständigen Quellcode.

Verfeinerungen beim Verbindungs-Handling

Anpassungen rund um Keep-Alive, Timeouts und Puffer-Management oberhalb der Indy-TCP-/UDP-/HTTP-/FTP-/SMTP-/POP3-/IMAP-Komponenten.

Gepflegt im Gleichschritt mit der restlichen eSeGeCe-Bibliothek

sgcIndy teilt sich seinen Update-Rhythmus mit sgcWebSockets, sgcOpenAPI, sgcSign und sgcBiometrics. Ein einziges All-Access-Abo enthält den Quellcode aller fünf Produkte.

Ehrliche Einordnung beider Optionen

Beide Optionen basieren auf derselben Indy-Codebasis. Die Entscheidung hängt meist davon ab, gegen welche OpenSSL-ABI du ausliefern willst, ob du TLS 1.3 brauchst und ob fertige Binaries für deinen Build-System-Workflow wichtig sind.

Nimm Indy, wenn…

Wähle Indy, wenn du die originale BSD-/MPL-Distribution willst, die von der Indy Pit Crew (Remy Lebeau und der Indy Working Group) gepflegt wird, wenn du direkt gegen den Master-Branch IndySockets/Indy baust, wenn dein OpenSSL-Setup auf die 1.0.x-Linie zielt, auf die Indy von Haus aus baut, oder wenn du TLS 1.3 in den SSL-Optionen nicht brauchst. Indy ist in jeder neueren RAD-Studio-Installation enthalten und verursacht damit keinen zusätzlichen Abhängigkeits-Aufwand.

Nimm sgcIndy, wenn…

Wähle sgcIndy, wenn du beim Indy-Komponentenmodell bleiben, aber OpenSSL-1.1.x- oder -3.0.x-Bindings, TLS 1.3 in den SSL-Optionen oder vorgefertigte DCU-Binaries für jede Delphi-/C++-Builder-Version von Delphi 7 bis RAD Studio 13 brauchst. Die Community-Edition ist kostenlos; die Source-Code-Edition ist im eSeGeCe-All-Access-Abo zusammen mit sgcWebSockets, sgcOpenAPI, sgcSign und sgcBiometrics enthalten.

So sind die Optionen lizenziert und verteilt

Beide Optionen erlauben den lizenzfreien Einsatz in kommerziellen Anwendungen. Unterschied: der Distributionsweg und was zusätzlich gebündelt wird.

Indy

Dual-lizenziert unter der Indy Modified BSD License oder der Indy MPL License, nach Wahl des Entwicklers (laut Projekt-README). Der vollständige Pascal-Quellcode liegt auf GitHub unter IndySockets/Indy; lade ein getaggtes Release oder baue direkt vom Master. Auf der Projektseite gibt es keine kompilierten Binaries — du baust aus dem Quellcode mit deiner Delphi-/C++-Builder-/Lazarus-Toolchain.

sgcIndy

Zwei Editionen. Die Community-Edition ist kostenlos: kompilierte DCU- und BPL-Binaries für jede unterstützte Delphi-/C++-Builder-Version, lizenzfreier Einsatz in kommerziellen Anwendungen, keine Registrierung. Die Source-Code-Edition ist im eSeGeCe-All-Access-Abo enthalten — vollständiger Pascal-Quellcode plus sgcWebSockets Enterprise, sgcOpenAPI, sgcSign und sgcBiometrics in einem Paket.

Jede Aussage verlinkt

Jede Zelle der Matrix oben lässt sich auf eine dieser offiziellen Dokumentationsseiten, Repositories oder Quelldateien zurückverfolgen. Alle URLs wurden zum Zeitpunkt des Schreibens per HEAD-Request geprüft.

QuelleURL
sgcIndy — product pagehttps://www.esegece.com/products/sgcindy/
sgcIndy — featureshttps://www.esegece.com/products/sgcindy/features/
sgcIndy — order & editionshttps://www.esegece.com/products/sgcindy/order/
sgcIndy — downloadhttps://www.esegece.com/products/sgcindy/download/
eSeGeCe All-Access pricinghttps://www.esegece.com/pricing/
Indy — project homepage (indyproject.org)https://www.indyproject.org/
Indy — documentation indexhttps://www.indyproject.org/documentation/
Indy — GitHub repository (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — releases (latest tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
Indy — master branch commitshttps://github.com/IndySockets/Indy/commits/master
Indy — Lib/Protocols (source listing)https://github.com/IndySockets/Indy/tree/master/Lib/Protocols
Indy — IdSSLOpenSSLHeaders.pas (OpenSSL 1.0.x bindings)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSLHeaders.pas
Indy — IdSSLOpenSSL.pas (TIdSSLVersion enum, 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 (upgrade instructions, documentation)https://github.com/IndySockets/Indy/wiki
RFC 7628 — SASL Mechanisms for OAuthhttps://datatracker.ietf.org/doc/html/rfc7628
RFC 8446 — The TLS 1.3 Protocolhttps://datatracker.ietf.org/doc/html/rfc8446
OpenSSL — project websitehttps://www.openssl.org/

sgcIndy ausprobieren

Lade die kostenlose Community-Edition herunter und füge die kompilierten Binaries in dein bestehendes Indy-basiertes Projekt ein.