Die andere etablierte Delphi-Netzwerkbibliothek
Für Delphi-Entwickler, die sich 2026 nach einer Netzwerkbibliothek umsehen, fallen meist drei Namen: Indy, Overbyte ICS (Internet Component Suite von François Piette) und sgcWebSockets. ICS gibt es fast so lange wie Indy und hat eine treue Anhängerschaft — vor allem unter Entwicklern, die seine nichtblockierende, Message-Pump-basierte Architektur schätzen. sgcWebSockets ist die jüngere kommerzielle Bibliothek mit Fokus auf moderne Protokolle.
Dieser Artikel vergleicht beide direkt: Funktionsumfang, WebSocket-Unterstützung, HTTP/2 und HTTP/3, Lizenz, Entwicklererlebnis und kommerzieller Support. Wo der Vergleich von einem konkreten ICS-Release abhängt, beziehen sich die Aussagen auf die zum Schreibzeitpunkt öffentlich dokumentierte v9-Reihe — prüfe das aktuelle ICS-Changelog, falls du eine exakte Feature-Bestätigung brauchst.
Ursprünge und Designphilosophie
ICS startete in den 1990ern als asynchrone, eventgesteuerte WinSock-Wrapper. Die klassischen ICS-Komponenten (TWSocket, THttpCli, TSslHttpServer) nutzen ein nichtblockierendes Message-Pump-Modell: Jede Socket-Operation postet eine Windows-Message, und du antwortest in einem Event-Handler. Dieses Modell passt wunderbar zur Delphi-VCL — keine Threads, keine Synchronisationsprimitive, läuft auf dem Main-Thread. Für höhere Parallelität hat ICS später einen Thread-pool-basierten HTTP-Server (TSslHttpAppSrv) hinzugefügt.
sgcWebSockets wurde um ein anderes Problem herum entworfen: langlebige bidirektionale Verbindungen (WebSocket, MQTT, SSE, gRPC-artige Streams) und moderne Transport-Stacks (HTTP/2, HTTP/3 über QUIC). Unter Windows nutzt es einen IOCP-basierten Server für Skalierung und ein eventgetriebenes Client-Modell für niedrige Latenz. Außerdem wrappt es Indy und ICS als alternative HTTP-Backends, sodass du den Transport wählen kannst, der zu deiner Umgebung passt.
Feature-für-Feature-Vergleich
| Feature | Overbyte ICS (v9, Stand jetzt) | sgcWebSockets |
|---|---|---|
| HTTP/1.1-Client | Ja (THttpCli, TSslHttpCli) | Ja, mehrere Backends |
| HTTP/1.1-Server | Ja (TSslHttpAppSrv) | Ja |
| WebSocket-Client | Ja (seit v8) | Ja, vollständiges RFC 6455 |
| WebSocket-Server | Ja (seit v8) | Ja, Subprotokolle, Per-Message-Deflate, Channels |
| HTTP/2 | Eingeschränkt / keine erstklassige Funktion | Ja, vollständige HPACK- + Frame-Schicht |
| HTTP/3 / QUIC | Nein | Ja (msquic-basiert) |
| MQTT 3.1.1 / 5.0 | Kein nativer Broker, nur einfacher Client | Vollständiger Client + Broker, beide Versionen |
| AMQP 1.0 / 0.9.1 | Nein | Ja |
| STOMP, SSE, WAMP | SSE einfach, andere nein | Alle unterstützt |
| WebRTC / STUN / TURN / DTLS-SRTP | Nein | Ja |
| CoAP, AWS IoT, Azure IoT | Nein | Ja |
| SMTP / POP3 / IMAP / FTP / NNTP | Ja, ausgereifte Implementierungen | Nein (Indy oder ICS nutzen) |
| OpenSSL-Bindings | Ja, sehr aktuell | Ja, plus SChannel und BoringSSL |
| 30+ REST-API-Wrapper (OpenAI, Anthropic, AWS, Azure, Börsen) | Nein | Ja |
| Lizenz | Kostenlos, Mozilla-artig | Kommerziell, Free Edition verfügbar |
| Delphi-Versionen | D7 bis D13 | D7 bis D13 |
| Pflege | Aktiv, herstellergeführt (Magenta Systems) | Aktiv, herstellergeführt, monatliche Releases |
| Kommerzieller Support | Optionale kostenpflichtige Supportverträge | In bezahlten Editionen enthalten |
WebSocket-Unterstützung
ICS hat in v8 WebSocket-Komponenten eingeführt (TIcsWebSocketClient, serverseitig über TSslHttpAppSrv mit WebSocket-Handlern). Sie decken RFC 6455 und TLS ab, was für viele Anwendungsfälle reicht. Was ICS standardmäßig noch nicht bietet: Per-Message-Deflate ab Werk, benannte Channels / Broadcast-Gruppen, einen Auto-Reconnect-WatchDog, JavaScript-Client-Glue oder eingebaute Protokolle auf WebSocket (WebSocket-MQTT, WebSocket-STOMP, WAMP).
sgcWebSockets behandelt WebSocket als Mittelpunkt des Universums. Der Server multiplext HTTP und WebSocket auf demselben Port, liefert Channels und Broadcast-Helfer, enthält einen JavaScript-Client, der die Delphi-API spiegelt, und ergänzt WatchDog-Auto-Reconnect, Heartbeat-Ping/Pong, Nachrichten-Queues sowie eine LB-artige Load-Balancer-Komponente. Wenn du WebSocket lebst und atmest, ist das Entwicklererlebnis spürbar reicher.
HTTP/2 und HTTP/3
Hier ist die größte Lücke. Zum Schreibzeitpunkt führt ICS HTTP/2 in den v9-Release-Notes nicht als erstklassige Funktion — auf der öffentlichen Mailing-Liste gab es experimentelle Arbeiten, der empfohlene Weg für HTTP/2 in einer ICS-Anwendung ist aber eine separate Bibliothek.
sgcWebSockets liefert seit 2018 eine vollständige HTTP/2-Implementierung mit dem HPACK-Header-Kompressionsalgorithmus, Frame-Multiplexing, Server Push und ALPN-Aushandlung. Derselbe Codepfad wird vom Apple-Push-Notification-Client, vom Google-FCM-Client und von jedem HTTP/2-Server-Endpunkt verwendet, den du baust. HTTP/3 über QUIC kam 2023 hinzu — unter Windows über Microsofts msquic-Bibliothek, unter Linux über ngtcp2. Für Anwendungen, die topaktuellen Transport-Support brauchen, ist das ein echter Unterschied.
Klassische Internet-Protokolle
Hier gewinnt ICS klar. SMTP, POP3, IMAP, FTP, NNTP, DNS und sogar ein HTTP-Proxy-Server sind alle enthalten und gut gepflegt. Wenn du einen E-Mail-Client, ein FTP-Front-End oder ein SMTP-Relay baust, ist ICS ein stärkerer Startpunkt als sgcWebSockets (das diese Protokolle gar nicht mitliefert).
Eine häufige Kombination ist, ICS für die Mail-/FTP-Schicht und sgcWebSockets für die WebSocket-/HTTP/2-/MQTT-Schicht im selben Produkt zu nutzen. Beide Bibliotheken koexistieren problemlos, weil sie getrennte Unit-Namespaces haben.
SSL / TLS
Beide Bibliotheken nehmen TLS ernst. ICS ist dafür bekannt, neue OpenSSL-Releases extrem schnell nachzuziehen — neue OpenSSL-3.x-Minor-Versionen werden meist innerhalb von Tagen unterstützt. sgcWebSockets zieht OpenSSL ebenfalls nach und unterstützt zusätzlich Windows SChannel und BoringSSL plus eine eigene Ende-zu-Ende-Verschlüsselungsschicht für Vertraulichkeit auf Anwendungsebene oberhalb von TLS.
Entwicklererlebnis
ICS nutzt eine eventgetriebene, Message-Pump-artige API, die sich sehr natürlich in einem VCL-Formular anfühlt — eine Komponente ablegen, OnDataAvailable oder OnRequestDone verdrahten, und Windows-Messages treiben den Ablauf. Es ist threadarm, gut zu debuggen und idiomatisch für klassische VCL-Entwicklung. Der Haken: Skalierung über eine einzelne Message-Pump hinaus erfordert entweder die Thread-Pool-Server-Varianten oder explizite Multi-Instance-Designs.
sgcWebSockets folgt der jüngeren Komponentenkonvention von Indy und modernen REST-Bibliotheken: eine Komponente mit streng typisierten Options-Unter-Objekten (HeartBeat, WatchDog, TLSOptions usw.), eventgetriebene Callbacks und Worker-Threads unter der Haube. Der IOCP-Server-Transport skaliert auf Zehntausende gleichzeitige Verbindungen, ohne dass du Code anpassen musst.
Lizenz und Preise
ICS ist sowohl für kommerzielle als auch für nicht-kommerzielle Nutzung unter einer Mozilla-artigen Lizenz kostenlos. Optionale kommerzielle Supportverträge gibt es von Magenta Systems. sgcWebSockets ist kommerziell, mit einer Free Edition für nicht-kommerzielle Nutzung und vier bezahlten Editionen (Standard, Professional, Enterprise, All-Access). Bezahlte Editionen enthalten Quellcode, monatliche Updates und direkten Hersteller-Support.
Entscheidungs-Matrix
| Wenn du brauchst… | Beste Wahl |
|---|---|
| SMTP-, POP3-, IMAP-, FTP-, NNTP-Clients | ICS |
| Winzigen Single-Form-HTTP-Fetcher ohne Threads | ICS |
| Topaktuelles OpenSSL-Tracking | ICS (sgc ist sehr dicht dran) |
| WebSocket-Client/-Server mit Channels, WatchDog, JS-Client | sgcWebSockets |
| HTTP/2-Client oder -Server, Apple Push, FCM | sgcWebSockets |
| HTTP/3 / QUIC | sgcWebSockets |
| MQTT-5-Broker, AMQP 1.0, WAMP, STOMP | sgcWebSockets |
| WebRTC, STUN, TURN, IoT, CoAP | sgcWebSockets |
| Fertige OpenAI-/Anthropic-/Cloud-API-Komponenten | sgcWebSockets |
| Kommerziellen Hersteller-Supportvertrag | Beide — sgcWebSockets dabei, ICS optional |
Abschluss
ICS und sgcWebSockets sind weniger Konkurrenten als ergänzende Werkzeuge. ICS ist eine wunderschön konstruierte, kostenlose, message-pump-freundliche Bibliothek, die bei klassischen Internet-Protokollen und schlankem HTTP brilliert. sgcWebSockets ist eine fokussierte kommerzielle Bibliothek, die den modernen Web-Stack besitzt — WebSocket, HTTP/2/3, MQTT, AMQP, WebRTC, IoT, KI-APIs — und auf große Mengen gleichzeitiger Verbindungen skaliert. Für viele reale Projekte ist die richtige Antwort, beide einzusetzen und jede Bibliothek dort zu wählen, wo sie am besten ist.