Delphi y C++ Builder: bibliotecas WebSocket — guía comparativa

Un análisis neutral y con fuentes citadas de las bibliotecas WebSocket disponibles para desarrolladores de Delphi y C++ Builder en 2026: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2 y bibliotecas MQTT independientes. Cada afirmación sobre características enlaza con la documentación oficial del proyecto.

Seis bibliotecas que se usan realmente

Un resumen de un párrafo de cada biblioteca, con enlace a la documentación oficial. La comparativa detallada está en la matriz de más abajo.

Indy (Internet Direct)

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

Biblioteca TCP/UDP/sockets en bruto de código abierto incluida con todas las instalaciones recientes de RAD Studio. Ofrece más de 120 clientes y servidores de protocolos de alto nivel (HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC y más), pero no incluye un cliente ni un servidor WebSocket nativo: las personas usuarias suelen añadir un complemento WebSocket de terceros encima de TIdHTTP / TIdHTTPServer.

Página oficial

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Gratis, con código fuente disponible

Biblioteca de red de código abierto para Delphi / C++ Builder de François Piette. El soporte de WebSocket se añadió en ICS V9.0 como TSslWebSocketCli (en OverbyteIcsWebSocketCli) y una clase de servidor THttpWSSrvConn sobre el servidor web existente de ICS.

Página oficial

TMS FNC WebSocket / TMS Sparkle

TMS Software · Comercial

TMS Software ofrece dos productos relevantes. TMS Sparkle es un framework HTTP cliente/servidor multiplataforma (usado también internamente por TMS XData y TMS RemoteDB). TMS FNC WebSocket es un par cliente-servidor WebSocket independiente para VCL + FireMonkey que implementa RFC 6455.

Página oficial

mORMot 2

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

Framework SOA / ORM / MVC en Object Pascal de código abierto con servidor HTTP y WebSocket asíncrono, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME y primitivas criptográficas. Las unidades de servidor para Delphi apuntan únicamente a Windows; FPC (Free Pascal) compila el mismo código de servidor para Linux, BSD y macOS. Los clientes móviles se soportan en todas las plataformas.

Página oficial

Bibliotecas independientes solo de MQTT

Varios autores de la comunidad · Varía (normalmente MIT / BSD / Apache)

Hay varios clientes MQTT de propósito único para Delphi publicados en GitHub. Suelen cubrir solo el lado cliente de MQTT 3.1.1, no incluyen servidor MQTT 5.0, AMQP, STOMP ni WAMP, y los mantienen autores individuales.

Página oficial

Comparativa lado a lado de características

Una marca () significa que el proyecto documenta soporte nativo. Un guion () significa que el proyecto no lo ofrece de forma nativa. Una tilde (~) significa parcial / mediante complemento / no documentado explícitamente; consulta la sección Fuentes para ver lo que pudimos verificar.

Protocolos, transporte, licencias

16 filas
Característica sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Bibliotecas independientes solo de MQTT
Cliente WebSocket Cliente RFC 6455 ~
Servidor WebSocket Servidor RFC 6455 ~
TLS 1.3 El transporte proporcionado admite TLS 1.3 ~ ~
Cliente HTTP/2 Cliente HTTP/2 nativo (RFC 7540 / 9113) ~
MQTT Cliente MQTT 3.1.1 / 5.0 incorporado ~ ~
AMQP Cliente AMQP 0.9.1 / 1.0 incorporado
STOMP Cliente STOMP 1.0 / 1.2 incorporado
WAMP WAMP v1 / v2 client built in
Server push / streaming Conexión push o streaming de larga duración ~ ~ ~
Reconexión automática Reconexión automática / watchdog del cliente incorporados ~ ~ ~ ~
per-message-deflate (RFC 7692) Extensión de compresión de WebSocket ~ ~ ~
Multiplataforma Win / macOS / Linux / iOS / Android ~ ~
Uso comercial permitido La licencia permite uso comercial de código cerrado
Código fuente disponible El código fuente de la biblioteca está disponible para la persona desarrolladora
Mantenimiento activo Lanzamientos o actividad etiquetada en los últimos 12–18 meses ~ ~
Modelo de licencia Tipo de licencia Comercial BSD / MPL (open source) Gratis, con código fuente Comercial MPL / GPL / LGPL (open source) Varía (normalmente MIT / BSD / Apache)
Soporte nativo documentado No se ofrece de forma nativa ~ Parcial / mediante complemento / sin verificar

Encaje honesto de cada biblioteca

Cada biblioteca aquí tiene un público real. La elección correcta depende del abanico de protocolos que necesites, tu preferencia de licencia y tus dependencias existentes.

Elige sgcWebSockets

Elige sgcWebSockets cuando necesites WebSocket más protocolos de mensajería (MQTT, AMQP, STOMP, WAMP), HTTP/2 y clientes de IA/LLM en un único conjunto de componentes con una sola licencia comercial, amplia cobertura de versiones de Delphi (7–13) incluyendo C++ Builder, y objetivos FireMonkey para macOS, iOS, Android y Linux.

Elige Indy (Internet Direct)

Elige Indy cuando WebSocket en sí no sea el requisito (por ejemplo, cuando necesites un toolkit TCP/UDP con licencia permisiva y soporte maduro de HTTP, SMTP, POP3, IMAP, FTP y NNTP), o cuando quieras extender el TIdHTTPServer existente con tu propio handler de upgrade a WebSocket. Indy se incluye con RAD Studio, así que no añade nada a tu huella de dependencias.

Elige ICS (Internet Component Suite)

Elige ICS cuando quieras una suite de red de código abierto para Delphi con cliente y servidor WebSocket, TLS 1.3 moderno (incluida criptografía postcuántica en la V9.6) sobre OpenSSL 3.x, y te resulte cómodo cablear rutas a través del servidor web existente de ICS. ICS es una versión de soporte prolongado que sigue versiones de OpenSSL mantenidas activamente.

Elige TMS FNC WebSocket / TMS Sparkle

Elige TMS FNC WebSocket cuando WebSocket sea el único protocolo de red que necesites en VCL y FireMonkey, cuando ya tengas licencias de otros componentes TMS FNC (el estilo de API visual y no visual se mantiene coherente), o cuando quieras concretamente la propuesta multi-framework de FNC (una sola base de código para VCL y FMX). Para hosting de servicios HTTP y HTTPS, TMS Sparkle se combina con TMS XData.

Elige mORMot 2

Elige mORMot 2 cuando quieras un framework full-stack de código abierto (ORM, SOA, REST, WebSocket, OpenAPI) para Object Pascal bajo MPL/GPL/LGPL, cuando tu servidor se ejecute en Linux con FPC, o cuando quieras un único framework que abarque la base de datos, la lógica de negocio y el transporte WebSocket.

Elige bibliotecas independientes solo de MQTT

Elige una biblioteca independiente solo de MQTT cuando MQTT sea el único protocolo que necesites, cuando el proyecto deba depender únicamente de código con licencia permisiva y cuando quieras leer cada línea de la implementación del protocolo. Audita el historial de commits del proyecto elegido antes de comprometerte: la actividad varía mucho entre autores.

Migrar a sgcWebSockets — qué cambia

Notas breves sobre las diferencias de API y características si vienes de una de las bibliotecas anteriores. Sin ánimo de enfrentar; solo la correspondencia práctica.

Migrar desde Indy (Internet Direct)

Indy te ofrece la base HTTP y TCP en crudo; sgcWebSockets te aporta el framing de WebSocket, ping/pong, reconexión automática, subprotocolos (MQTT/AMQP/STOMP/WAMP) y per-message-deflate integrados. Si hoy tienes un servidor HTTP basado en Indy, sgcWebSockets ofrece un TsgcWebSocketHTTPServer aparte en lugar de un plug-in dentro de Indy: las rutas HTTP existentes hay que reimplementarlas con el servidor sgc, o ejecutar ambos en paralelo en puertos distintos.

Migrar desde ICS (Internet Component Suite)

Ambas bibliotecas exponen un cliente WebSocket y un servidor WebSocket-sobre-HTTP. Los protocolos de mensajería con nombre (MQTT, AMQP, STOMP, WAMP) y los clientes de IA/LLM y APIs de exchanges son exclusivos de sgcWebSockets. Si actualmente ejecutas un servidor web ICS con rutas WebSocket, sgcWebSockets ofrece TsgcWebSocketHTTPServer como host HTTP+WS listo para usar, aunque la API de registro de rutas es distinta.

Migrar desde TMS FNC WebSocket / TMS Sparkle

sgcWebSockets y TMS FNC WebSocket implementan ambos cliente y servidor RFC 6455. Migra cambiando la clase del componente y reconectando los eventos. Las capas de protocolo construidas encima (MQTT, AMQP, STOMP, WAMP), el cliente y servidor HTTP/2 y las más de 30 integraciones de APIs de terceros son exclusivas de sgcWebSockets. Si usas TMS MQTT por separado, sgcWebSockets incluye MQTT en la misma suite.

Migrar desde mORMot 2

mORMot 2 envuelve WebSocket dentro de su capa SOA; sgcWebSockets ofrece un componente independiente WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP que puedes añadir a cualquier proyecto Delphi. Si tu aplicación usa las funciones de ORM y SOA de mORMot 2, cambiar a sgcWebSockets implica reimplementar la capa SOA; si solo usabas mORMot 2 para el transporte WebSocket, sgcWebSockets es un cambio más uno a uno.

Migrar desde bibliotecas independientes solo de MQTT

Si actualmente usas una biblioteca solo de MQTT y empiezas a añadir WebSocket, HTTP/2, AMQP o clientes de IA/LLM, sgcWebSockets consolida todo eso en una sola suite, con una única licencia y un único canal de actualizaciones.

Cada afirmación, con enlace

Cada celda de la matriz anterior remite a una de estas páginas oficiales de documentación, repositorios o notas de versión. Todas las URL se comprobaron con HEAD en el momento de la redacción.

FuenteURL
sgcWebSockets — página del productohttps://www.esegece.com/products/websockets/
sgcWebSockets — matriz de características de Delphihttps://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — project homepage (indyproject.org)https://www.indyproject.org/
Indy — GitHub repository (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — releases (latest tagged 10.6.3.14)https://github.com/IndySockets/Indy/releases
ICS — V9.0 release notes (WebSocket support introduced)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — V9.6 release notes (TLS 1.3 / PQC)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — download page (latest stable)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — product pagehttps://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — product pagehttps://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — GitHub repository (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (protocol list, supported targets)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — releases (v2.4 stable)https://github.com/synopse/mORMot2/releases
Synopse forum (Object Pascal SOA / ORM)https://synopse.info/
GitHub topic: delphi-mqtt (community single-purpose MQTT clients)https://github.com/topics/delphi-mqtt
RFC 6455 — The WebSocket Protocolhttps://datatracker.ietf.org/doc/html/rfc6455
RFC 7692 — Compression Extensions for WebSocket (per-message-deflate)https://datatracker.ietf.org/doc/html/rfc7692

Prueba sgcWebSockets

Descarga la edición Trial gratuita y compara el rendimiento de sgcWebSockets con tu biblioteca actual en tu propia aplicación.