Bibliothèques WebSocket Delphi & C++ Builder — guide de comparaison

Un tour d'horizon neutre, avec sources citées, des bibliothèques WebSocket disponibles pour les développeurs Delphi et C++ Builder en 2026 : sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2 et les bibliothèques MQTT autonomes. Chaque affirmation sur une fonctionnalité renvoie à la documentation officielle du projet.

Six bibliothèques que les développeurs utilisent vraiment

Un résumé d'un paragraphe pour chaque bibliothèque, avec un lien vers la documentation officielle. La comparaison détaillée est dans la matrice ci-dessous.

Indy (Internet Direct)

Indy Working Group / Remy Lebeau · BSD / MPL (open source)

Bibliothèque open source TCP/UDP/socket brut livrée avec toutes les installations récentes de RAD Studio. Elle fournit plus de 120 clients et serveurs de protocoles de plus haut niveau (HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC et plus) mais n'inclut pas de client ou serveur WebSocket natif — les utilisateurs ajoutent généralement un add-on WebSocket tiers par-dessus TIdHTTP / TIdHTTPServer.

Page officielle

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Gratuit, code source disponible

Bibliothèque réseau Delphi / C++ Builder open source par François Piette. Le support de WebSocket a été ajouté dans ICS V9.0 sous la forme de TSslWebSocketCli (dans OverbyteIcsWebSocketCli) et d'une classe serveur THttpWSSrvConn par-dessus le serveur web ICS existant.

Page officielle

TMS FNC WebSocket / TMS Sparkle

TMS Software · Commercial

TMS Software propose deux produits pertinents. TMS Sparkle est un framework client / serveur HTTP multiplateforme (également utilisé en interne par TMS XData et TMS RemoteDB). TMS FNC WebSocket est une paire client et serveur WebSocket VCL + FireMonkey distincte, qui implémente RFC 6455.

Page officielle

mORMot 2

Arnaud Bouchez / Synopse · MPL / GPL / LGPL (open source)

Framework SOA / ORM / MVC Object Pascal open source avec un serveur HTTP et WebSocket asynchrone, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME et des primitives cryptographiques. Les unités serveur Delphi ne ciblent que Windows ; FPC (Free Pascal) compile le même code serveur pour Linux, BSD et macOS. Les clients mobiles sont pris en charge sur toutes les plateformes.

Page officielle

Bibliothèques MQTT autonomes

Divers auteurs communautaires · Varie (généralement MIT / BSD / Apache)

Plusieurs clients MQTT spécialisés pour Delphi sont publiés sur GitHub. Ils couvrent généralement uniquement le côté client MQTT 3.1.1, n'incluent pas de serveur MQTT 5.0, d'AMQP, de STOMP ou de WAMP, et sont maintenus par des auteurs individuels.

Page officielle

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

Un point () signifie que le projet documente un support natif. Un tiret () signifie que le projet ne le fournit pas nativement. Un tilde (~) signifie partiel / via un add-on / non explicitement documenté — consulte la section Sources pour ce que nous avons pu vérifier.

Protocoles, transport, licence

16 lignes
Fonctionnalité sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Bibliothèques MQTT autonomes
Client WebSocket Client RFC 6455 ~
Serveur WebSocket Serveur RFC 6455 ~
TLS 1.3 TLS 1.3 pris en charge par le transport fourni ~ ~
Client HTTP/2 Client HTTP/2 natif (RFC 7540 / 9113) ~
MQTT Client MQTT 3.1.1 / 5.0 intégré ~ ~
AMQP Client AMQP 0.9.1 / 1.0 intégré
STOMP Client STOMP 1.0 / 1.2 intégré
WAMP Client WAMP v1 / v2 intégré
Push serveur / streaming Connexion push ou streaming longue durée ~ ~ ~
Reconnexion automatique Reconnexion automatique / watchdog client intégrés ~ ~ ~ ~
per-message-deflate (RFC 7692) Extension de compression WebSocket ~ ~ ~
Multiplateforme Win / macOS / Linux / iOS / Android ~ ~
Usage commercial autorisé La licence autorise un usage commercial à code source fermé
Code source disponible Le code source de la bibliothèque est visible pour le développeur
Maintenance active Release ou activité taguée au cours des 12 à 18 derniers mois ~ ~
Modèle de licence Type de licence Commercial BSD / MPL (open source) Gratuit, code source disponible Commercial MPL / GPL / LGPL (open source) Varie (généralement MIT / BSD / Apache)
Support natif documenté Non fourni nativement ~ Partiel / via un add-on / non vérifié

Passer à sgcWebSockets — ce qui diffère

Notes courtes sur les différences d'API et de fonctionnalités si tu passes depuis une des bibliothèques ci-dessus. Pas d'esprit antagoniste — juste un mappage pratique.

Migrer depuis Indy (Internet Direct)

Indy te donne la plomberie brute HTTP et TCP ; sgcWebSockets te donne le framing WebSocket, le ping/pong, la reconnexion automatique, les sous-protocoles (MQTT/AMQP/STOMP/WAMP) et le per-message-deflate intégrés. Si tu as aujourd'hui un serveur HTTP basé sur Indy, sgcWebSockets fournit un TsgcWebSocketHTTPServer séparé plutôt qu'un plug-in dans Indy — les routes HTTP existantes doivent être réimplémentées sur le serveur sgc, ou tu peux faire tourner les deux côte à côte sur des ports différents.

Migrer depuis ICS (Internet Component Suite)

Les deux bibliothèques exposent un client WebSocket et un serveur WebSocket-sur-HTTP. Les protocoles de messagerie nommés (MQTT, AMQP, STOMP, WAMP) et les clients IA/LLM et d'API d'échange sont propres à sgcWebSockets. Si tu fais tourner aujourd'hui un serveur web ICS avec des routes WebSocket, sgcWebSockets fournit TsgcWebSocketHTTPServer comme hôte HTTP+WS prêt à l'emploi, mais l'API d'enregistrement des routes est différente.

Migrer depuis TMS FNC WebSocket / TMS Sparkle

sgcWebSockets et TMS FNC WebSocket implémentent tous deux client et serveur RFC 6455. Migre en remplaçant la classe du composant et en recâblant les événements. Les couches de protocoles construites par-dessus (MQTT, AMQP, STOMP, WAMP), le client et serveur HTTP/2 et les plus de 30 intégrations d'API tierces sont propres à sgcWebSockets. Si tu utilises TMS MQTT séparément, sgcWebSockets regroupe MQTT dans la même suite.

Migrer depuis mORMot 2

mORMot 2 encapsule WebSocket dans sa couche SOA ; sgcWebSockets fournit un composant autonome WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP que tu peux intégrer dans n'importe quel projet Delphi. Si ton application utilise les fonctionnalités ORM et SOA de mORMot 2, passer à sgcWebSockets implique de réimplémenter la couche SOA ; si tu n'utilisais mORMot 2 que pour le transport WebSocket, sgcWebSockets est un échange plus direct.

Migrer depuis des bibliothèques MQTT autonomes

Si tu utilises aujourd'hui une bibliothèque MQTT autonome et que tu commences à ajouter des clients WebSocket, HTTP/2, AMQP ou IA/LLM, sgcWebSockets consolide tout cela dans une seule suite, avec une seule licence et un seul canal de mises à jour.

Chaque affirmation, sourcée

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

SourceURL
sgcWebSockets — page produithttps://www.esegece.com/products/websockets/
sgcWebSockets — matrice de fonctionnalités Delphihttps://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — page d'accueil du projet (indyproject.org)https://www.indyproject.org/
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
ICS — notes de version V9.0 (introduction du support WebSocket)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — notes de version V9.6 (TLS 1.3 / PQC)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — page de téléchargement (dernière version stable)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — page produithttps://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — page produithttps://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — dépôt GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (liste des protocoles, cibles prises en charge)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — releases (v2.4 stable)https://github.com/synopse/mORMot2/releases
Forum Synopse (SOA / ORM Object Pascal)https://synopse.info/
Topic GitHub : delphi-mqtt (clients MQTT communautaires spécialisés)https://github.com/topics/delphi-mqtt
RFC 6455 — Le protocole WebSockethttps://datatracker.ietf.org/doc/html/rfc6455
RFC 7692 — Extensions de compression pour WebSocket (per-message-deflate)https://datatracker.ietf.org/doc/html/rfc7692

Essaye sgcWebSockets

Télécharge l'édition Trial gratuite et compare les performances de sgcWebSockets avec ta bibliothèque actuelle sur ta propre application.