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 Stand-alone MQTT-only libraries
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é

Ce qui convient honnêtement à chaque bibliothèque

Chaque bibliothèque ici a un public réel. Le bon choix dépend de l'éventail de protocoles dont tu as besoin, de tes préférences de licence et de tes dépendances existantes.

Choisir sgcWebSockets

Choisis sgcWebSockets quand tu as besoin de WebSocket ainsi que des protocoles de messagerie (MQTT, AMQP, STOMP, WAMP), de HTTP/2 et de clients IA/LLM dans un seul ensemble de composants avec une seule licence commerciale, une large couverture des versions Delphi (7–13) y compris C++ Builder, et des cibles FireMonkey pour macOS, iOS, Android et Linux.

Choisir Indy (Internet Direct)

Choisis Indy quand WebSocket en lui-même n'est pas l'exigence — par exemple, quand tu as besoin d'une boîte à outils TCP/UDP sous licence permissive avec un support mature de HTTP, SMTP, POP3, IMAP, FTP et NNTP, ou quand tu veux étendre le TIdHTTPServer existant avec ton propre gestionnaire d'upgrade WebSocket. Indy est livré avec RAD Studio, donc il n'ajoute rien à ton empreinte de dépendances.

Choisir ICS (Internet Component Suite)

Choisis ICS quand tu veux une suite réseau Delphi open source avec client et serveur WebSocket, TLS 1.3 moderne (y compris la cryptographie post-quantique dans V9.6) par-dessus OpenSSL 3.x, et que tu es à l'aise pour câbler les routes via le serveur web ICS existant. ICS est une release à long terme qui suit les versions activement maintenues d'OpenSSL.

Choisir TMS FNC WebSocket / TMS Sparkle

Choisis TMS FNC WebSocket quand WebSocket est le seul protocole réseau dont tu as besoin sur VCL et FireMonkey, quand tu utilises déjà d'autres composants TMS FNC sous licence (le style d'API visuel et non visuel reste cohérent), ou quand tu veux spécifiquement l'approche FNC multi-frameworks (une seule base de code entre VCL et FMX). Pour l'hébergement de services HTTP et HTTP/S, TMS Sparkle se combine avec TMS XData.

Choisir mORMot 2

Choisis mORMot 2 quand tu veux un framework full-stack open source (ORM, SOA, REST, WebSocket, OpenAPI) pour Object Pascal sous MPL/GPL/LGPL, quand ton serveur tourne sur Linux sous FPC, ou quand tu veux un seul framework qui couvre la base de données, la logique métier et le transport WebSocket.

Choisir des bibliothèques MQTT autonomes

Choisis une bibliothèque MQTT autonome quand MQTT est le seul protocole dont tu as besoin, quand le projet ne doit dépendre que de code sous licence permissive, et quand tu veux lire chaque ligne de l'implémentation du protocole. Audite l'historique des commits du projet choisi avant de t'engager — l'activité varie beaucoup entre les auteurs.

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.