Add-on für sgcWebSockets Core Delphi 7 bis 13 & C++ Builder

sgcCustomIndy: Die angepasste Indy-Bibliothek für sgcWebSockets Core

Indy ist die Open-Source-Bibliothek für Client- und Server-Kommunikation, die sgcWebSockets als Basis für einen Teil seiner Komponenten nutzt. Die Standard-Indy-Bibliothek unterstützt weder ALPN noch TLS 1.3 über OpenSSL 1.1.1 oder 3.x, deshalb liefert sgcWebSockets Enterprise einen angepassten Indy-Build aus, der beides kann. sgcCustomIndy bringt genau diesen Build zu sgcWebSockets Core, wofür sonst der Wechsel auf die Enterprise-Edition nötig wäre.

Vollständiger Quellcode
Nichts zu deinstallieren
Nebeneinander installiert Eine IDE Die angepassten Units tragen ein sgc-Präfix, dadurch leben beide Bibliotheken in derselben IDE
Standard-Indy IdGlobal.pas
Angepasstes Indy sgcIdGlobal.pas
0 Indy-Bibliotheken zu deinstallieren Das Indy in deiner IDE bleibt installiert
0 Indy-10-Installationen unter Delphi 7 Die Bibliothek kommt mit dem Paket
3 Funktionen, die dem Standard-Indy fehlen ALPN, TLS 1.3 über OpenSSL 1.1.1 und 3.x, statisches Linken
1 Unit für statisches OpenSSL sgcIdSSLOpenSSL_Static in der uses-Klausel
2 Ziele für statisches Linken Windows 32 Bit und 64 Bit, Delphi XE2 oder neuer

Zwei Dinge, die du vorher wissen solltest

Für wen dieses Paket gedacht ist und wer es bereits hat. Beide Antworten sind kurz.

Es ist ein Add-on, keine eigene Bestellung

sgcCustomIndy hängt an einer sgcWebSockets Core-Lizenz. Es wird nicht einzeln bestellt: Es erscheint als erstes empfohlenes Add-on innerhalb einer Core-Bestellung, also genau der Bestellung, über die auch die Pakete sgcAI, sgcMQ, sgcSocial, sgcAuth und sgcHTTP laufen.

Der vollständige Quellcode gehört zur Lizenz, die Indy-Units kompilieren und lassen sich in deinem eigenen Projekt genauso durchsteppen wie der Rest der Bibliothek.

Vorher prüfen

Enterprise und All-Access enthalten es bereits

Die angepasste Indy-Bibliothek ist Teil von sgcWebSockets Enterprise und von eSeGeCe All-Access, dort ist sie über das Compiler-Define SGC_CUSTOM_INDY in sgcVer.inc standardmäßig aktiviert. Wenn du eine dieser beiden Lizenzen hältst, besitzt du bereits alles auf dieser Seite und musst nichts hinzufügen.

Die Editionen Standard und Professional verwenden die Standard-Indy-Bibliothek. Sieh dir an, welche Edition du brauchst, wenn du ein Edition-Upgrade gegen dieses Paket abwägst.

Drei Dinge, die die Standard-Indy-Bibliothek nicht kann

Jeder Punkt unten ist eine Fähigkeit der Indy-Schicht selbst, nicht einer Komponente darüber. Deshalb schaltet erst der Austausch der Indy-Bibliothek sie frei.

ALPNProtokollaushandlung

Die Erweiterung, auf der HTTP/2 aufbaut

HTTP/2 wird während des TLS-Handshakes ausgehandelt: Der Client nennt die Protokolle, die er sprechen kann, und der Server wählt eines davon aus. Diese Aushandlung ist Application-Layer Protocol Negotiation, sie läuft innerhalb der TLS-Schicht ab, unterhalb von allem, was eine HTTP-Komponente erreichen kann. Die Standard-Indy-Bibliothek unterstützt das nicht, erst die angepasste Indy-Bibliothek macht ALPN und damit HTTP/2 verfügbar.

ALPN HTTP/2
TLS 1.3OpenSSL 1.1.1 und 3.x

Die modernen OpenSSL-Zweige, endlich erreichbar

TLS 1.3 braucht OpenSSL 1.1.1 oder OpenSSL 3.0.0, und die Standard-Indy-Bibliothek unterstützt diese Zweige nicht. Die angepasste Indy-Bibliothek tut es, ein darauf aufgebauter Client oder Server handelt TLS 1.3 also mit Endpunkten aus, die es verlangen, statt auf das begrenzt zu bleiben, was die ältere OpenSSL-API bietet.

TLS 1.3 OpenSSL 1.1.1 OpenSSL 3.x
Statisches OpenSSLWindows, Delphi XE2 oder neuer

OpenSSL in der ausführbaren Datei

OpenSSL kann direkt in deine Anwendung gelinkt werden, statt zur Laufzeit aus den DLLs libcrypto und libssl geladen zu werden, eine TLS-Anwendung wird damit als einzelne Datei ausgeliefert. Das wirkt nur, wenn die angepasste Indy-Bibliothek im Einsatz ist, und genau die liefert dieses Paket. Der Geltungsbereich ist Windows 32 Bit und 64 Bit ab Delphi XE2, im Detail weiter unten.

sgcIdSSLOpenSSL_Static Nur Windows Delphi XE2+

Es steht neben dem Indy, das du bereits hast

Die Indy-Bibliothek in einer IDE auszutauschen ist der Teil, den niemand machen will, deshalb verlangt dieses Paket das nicht. Die angepassten Indy-Dateien werden mit einem sgc-Präfix umbenannt, aus IdGlobal wird sgcIdGlobal, und beide Versionen bestehen problemlos nebeneinander.

Standard-Indy, bereits in deiner IDEAngepasstes Indy, von diesem Paket ergänztWas das bedeutet
IdGlobal.passgcIdGlobal.pasUnterschiedliche Unit-Namen, im Suchpfad kollidiert also nichts
IdTCPClient.passgcIdTCPClient.pasBeide Bibliotheken kompilieren in dieselbe IDE und dasselbe Projekt
IdSSLOpenSSL.passgcIdSSLOpenSSL.pasDein bestehender TLS-Code nutzt weiterhin die Unit, die er schon nutzt
Nichts zu deinstallieren

Welches Indy deine IDE auch schon hat, es bleibt installiert und registriert. Es gibt keinen Schritt, in dem du ein Package entfernst, es später wiederherstellst oder zwei IDE-Profile pflegst.

Bestehende Projekte bleiben unberührt

Alles, was du bereits gegen die Standard-Indy-Bibliothek baust, kompiliert weiterhin dagegen, Byte für Byte dieselben Units. Der angepasste Build kommt zusätzlich dazu, er ist kein Ersatz und kein Upgrade, das auf deine IDE angewendet wird.

Ein einziges Compiler-Define

Die Verwendung der angepassten Indy-Bibliothek steuert SGC_CUSTOM_INDY in sgcVer.inc im Source-Ordner. Es ist ein einziges Define, den angepassten Build wieder abzuschalten ist also eine Änderung von einer Zeile.

Vollständiger Quellcode, wie immer

Die umbenannten Indy-Units werden als Quellcode mit der Lizenz ausgeliefert, sie kompilieren mit deinen Projekteinstellungen und lassen sich in deinem Debugger durchsteppen wie der Rest der Bibliothek.

Keine separate Indy-10-Installation

Delphi 7 kommt mit einem älteren Indy. sgcWebSockets dort einzusetzen hieße sonst, zuerst selbst Indy 10 in die IDE zu installieren, und genau dieser Schritt hält viele auf, bevor sie eine Zeile Code geschrieben haben. Mit der beigelegten angepassten Indy-Bibliothek entfällt er.

Was die Voraussetzung bisher war

Indy 10 beschaffen, es in eine Delphi-7-IDE installieren, die nie damit ausgeliefert wurde, die Packages zum Bauen bringen, dann zurückkommen und mit sgcWebSockets anfangen. Das ist ein komplett eigenes Stück Arbeit, erledigt vor dem Teil, den du eigentlich machen wolltest.

Für ein Team, das noch Delphi-7-Code pflegt, entscheidet diese Voraussetzung oft darüber, ob eine Komponentenbibliothek überhaupt evaluiert wird.

Wie es mit diesem Paket aussieht

Die angepasste Indy-Bibliothek kommt mit dem Paket, im selben Source-Ordner wie alles andere. Es gibt kein Indy 10 zu suchen, kein Indy 10 in die IDE zu installieren und keine Indy-10-Version, die passend zu den Komponenten gehalten werden muss.

Hier geht es allein um die Voraussetzung Indy 10. Das statische Linken von OpenSSL ist eine eigene Funktion mit eigenem Geltungsbereich, Windows und Delphi XE2 oder neuer, unter Delphi 7 greift sie also nicht.

Eine Unit, eine Datei zum Ausliefern

Es gibt nichts zu konfigurieren. Füge sgcIdSSLOpenSSL_Static zur uses-Klausel deines Projekts hinzu, zum Beispiel in der Haupt-.dpr, und die Anwendung nutzt beim nächsten Start das in die ausführbare Datei gelinkte OpenSSL, für Client- wie Server-Komponenten gleichermaßen.

// Project1.dpr
uses
  sgcIdSSLOpenSSL_Static;

// Das ist die gesamte Konfiguration. Keine Compiler-Direktive zum Aktivieren,
// keine OpenSSL-API-Version zur Auswahl. Entferne die Unit wieder und die
// Anwendung lädt die OpenSSL-DLLs wieder genau wie zuvor.
Plattformen Wo eine Objektdatei in diesem Format gelinkt werden kann
Windows 32 Bit Windows 64 Bit macOS iOS Android
Compiler Ältere Versionen melden E2045 Bad object file format
Delphi XE2 und neuer Delphi 7 bis XE
Voraussetzung Ohne sie hat statisches Linken keine Wirkung
Angepasste Indy-Bibliothek im Einsatz SGC_CUSTOM_INDY definiert
Gelinktes OpenSSL Wird von Zeit zu Zeit aktualisiert, um die neuesten OpenSSL-Korrekturen aufzunehmen
OpenSSL 3.5.7

Auf einer Version oder Plattform, auf der statisches Linken nicht verfügbar ist, geht nichts kaputt. Die Anwendung lädt die OpenSSL-DLLs weiter wie bisher, derselbe Quellcode baut also überall.

Welches Indy jede Edition verwendet

Die angepasste Indy-Bibliothek ist nichts Neues. Auf ihr baut sgcWebSockets Enterprise auf, und dieses Paket ist der Weg dorthin für Core.

Was du besitztIndy-BibliothekHinweise
sgcWebSockets StandardStandardKein ALPN, kein TLS 1.3 über OpenSSL 1.1.1 oder 3.x
sgcWebSockets ProfessionalStandardKein ALPN, kein TLS 1.3 über OpenSSL 1.1.1 oder 3.x
sgcWebSockets EnterpriseAngepasstEnthalten, standardmäßig aktiviert
eSeGeCe All-AccessAngepasstEnthalten, standardmäßig aktiviert
sgcWebSockets Core alleinStandardGenau das ändert das Paket
sgcWebSockets Core mit sgcCustomIndyAngepasstDerselbe angepasste Build, den Enterprise verwendet

Nicht dasselbe wie sgcIndy

sgcCustomIndy ist der sgc-präfixierte Build, der neben deinem vorhandenen Indy liegt und von den sgcWebSockets-Komponenten genutzt wird. sgcIndy ist das separate vollständige Indy-Package mit den Units unter ihren Originalnamen, das du anstelle des Indy in deiner IDE installierst, damit auch Standard-Indy-Komponenten wie SMTP und FTP dasselbe moderne TLS bekommen. Unterschiedliche Produkte, unterschiedliche Aufgaben.

Wird bei einer Core-Bestellung hinzugefügt

sgcCustomIndy startet bei €149 für einen einzelnen Entwickler. Alle Lizenzen enthalten den vollen Quellcode, 1 Jahr Updates und 50% bis 70% Verlängerungsrabatt: 50%, wenn du ein Paket verlängerst, 60% bei zwei, 70% bei drei oder mehr. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP und sgcREST zählen jeweils als ein Paket.

sgcCustomIndy

€149

Erhältlich als Single-Lizenz €149, Team-Lizenz €249 und Site-Lizenz €399.

  • Die angepasste Indy-Bibliothek, die sgcWebSockets Enterprise verwendet
  • ALPN und damit HTTP/2
  • TLS 1.3 über OpenSSL 1.1.1 und 3.x
  • Statisches OpenSSL-Linken unter Windows, Delphi XE2 oder neuer
  • sgc-präfixierte Units, dein installiertes Indy bleibt unberührt
  • Keine separate Indy-10-Installation unter Delphi 7
  • Vollständiger Quellcode
  • 1 Jahr Updates

Es gibt keine eigene Bestellseite für sgcCustomIndy, denn das Paket ist nie der Artikel, mit dem du eine Bestellung beginnst. Es wird als erstes empfohlenes Add-on innerhalb einer sgcWebSockets Core-Bestellung angeboten, du fügst es also mit einem Klick hinzu, während du sgcAI, sgcMQ oder sgcSocial bestellst, und es landet auf derselben Lizenz. Da die WebAuthn-Unterstützung von sgcAuth sowie die HTTP/2- und gRPC-Clients von sgcHTTP es beide voraussetzen, legt die Bestellung eines dieser beiden Pakete sgcCustomIndy automatisch in deinen Warenkorb. Du kannst es entfernen, falls du es über Enterprise oder All-Access bereits besitzt.

Du hast bereits sgcWebSockets Enterprise oder eSeGeCe All-Access? Dann gehört dir die angepasste Indy-Bibliothek schon, in den sgcWebSockets-Preisen steht, was diese Editionen abdecken.

3,000+Entwickler
20+Jahre
761+Komponenten
30+API-Integrationen
5Plattformen
30 Tage Geld-zurück-GarantieNicht zufrieden? Fordere innerhalb von 30 Tagen nach dem Kauf eine vollständige Rückerstattung an. Rückerstattungsrichtlinie ansehen

Die Indy-Schicht, auf den aktuellen Stand gebracht

ALPN und damit HTTP/2, TLS 1.3 über OpenSSL 1.1.1 und 3.x sowie OpenSSL, das unter Windows in die ausführbare Datei gelinkt wird. Alles davon neben dem Indy, das du bereits hast, ohne etwas zu deinstallieren und ohne Indy 10 unter Delphi 7 zu installieren.

Weitere Produkte von eSeGeCe

Kombiniere sgcCustomIndy mit unseren anderen Delphi-, C++-Builder- und .NET-Komponentenbibliotheken.

sgcWebSockets

Die vollständige Bibliothek: WebSocket-Clients und -Server, HTTP/2, IoT, P2P und KI-Komponenten. Enterprise baut auf dieser angepassten Indy-Bibliothek auf.

Mehr erfahren →

sgcIndy

Das vollständige Indy-Package unter den Original-Unit-Namen, installiert anstelle des Indy in deiner IDE, damit SMTP, FTP und der Rest modernes TLS bekommen.

Mehr erfahren →

sgcAI

KI-, LLM- und MCP-Komponenten. Eine Chat-Komponente erreicht OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok und Mistral.

Mehr erfahren →

sgcMQ

Native Clients für MQTT, AMQP 0.9.1, AMQP 1.0, Apache Kafka und STOMP. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcSocial

WhatsApp Business Cloud API und Telegram TDLib Clients. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcAuth

OAuth2-Client, JWT-Client und WebAuthn-Unterstützung. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcHTTP

HTTP/2-Client, gRPC-Client sowie Clients für Google Cloud Pub/Sub, Calendar und FCM. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcQUIC

Client- und Server-Komponenten für QUIC (RFC 9000) und HTTP/3 (RFC 9114), aufgebaut auf der nativen QUIC-Engine von OpenSSL 3.5.

Mehr erfahren →

sgcHTML

Datengebundene serverseitige HTML- und UI-Komponenten für Delphi, C++ Builder und .NET, mit Bootstrap 5 und htmx.

Mehr erfahren →

sgcSign

Digitale Signaturen für Unternehmen. XAdES, PAdES, CAdES und ASiC mit 10 Schlüsselanbietern und 21 EU-Länderprofilen.

Mehr erfahren →

sgcOpenAPI

OpenAPI-3.0-Parser und SDK-Generator. Verwandle jede OpenAPI-Spezifikation in Sekunden in einen streng typisierten Delphi-Client.

Mehr erfahren →