Bibliotecas WebSocket para Delphi e C++ Builder — guia de comparação

Um levantamento neutro, com fontes citadas, das bibliotecas WebSocket disponíveis para desenvolvedores Delphi e C++ Builder em 2026: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2 e bibliotecas MQTT independentes. Cada afirmação sobre recursos liga à própria documentação do projeto.

Seis bibliotecas que desenvolvedores realmente usam

Um resumo de um parágrafo sobre cada biblioteca, com um link para a documentação oficial. A comparação detalhada está na matriz abaixo.

Indy (Internet Direct)

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

Biblioteca open-source TCP/UDP/raw-socket que vem junto com toda instalação recente do RAD Studio. Distribui mais de 120 clientes e servidores de protocolos de mais alto nível (HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC e outros), mas não inclui cliente ou servidor WebSocket nativo — usuários geralmente adicionam um add-on WebSocket de terceiros sobre TIdHTTP / TIdHTTPServer.

Página oficial

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Gratuita, com código-fonte disponível

Biblioteca de redes open-source para Delphi / C++ Builder, de François Piette. O suporte a WebSocket foi adicionado no ICS V9.0 como TSslWebSocketCli (em OverbyteIcsWebSocketCli) e a classe de servidor THttpWSSrvConn sobre o servidor web ICS existente.

Página oficial

TMS FNC WebSocket / TMS Sparkle

TMS Software · Comercial

A TMS Software oferece dois produtos relevantes. O TMS Sparkle é um framework HTTP cliente / servidor multiplataforma (também usado internamente pelo TMS XData e pelo TMS RemoteDB). O TMS FNC WebSocket é um par separado cliente e servidor WebSocket para VCL + FireMonkey implementando o RFC 6455.

Página oficial

mORMot 2

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

Framework open-source Object Pascal SOA / ORM / MVC com servidor HTTP e WebSocket assíncrono, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME e primitivas de criptografia. As units de servidor para Delphi só têm como alvo Windows; o FPC (Free Pascal) compila o mesmo código de servidor para Linux, BSD e macOS. Clientes mobile são suportados em todas as plataformas.

Página oficial

Bibliotecas MQTT independentes

Vários autores da comunidade · Varia (tipicamente MIT / BSD / Apache)

Há diversos clientes MQTT de propósito único para Delphi publicados no GitHub. Eles geralmente cobrem apenas o lado cliente do MQTT 3.1.1, não incluem servidor MQTT 5.0, AMQP, STOMP nem WAMP, e são mantidos por autores individuais.

Página oficial

Comparação de recursos lado a lado

Um check () significa que o projeto documenta suporte nativo. Um traço () significa que o projeto não oferece o recurso nativamente. Um til (~) significa parcial / via add-on / não documentado explicitamente — veja a seção Fontes para o que foi possível verificar.

Protocolos, transporte, licenciamento

16 linhas
Recurso sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Bibliotecas MQTT independentes
Cliente WebSocket Cliente RFC 6455 ~
Servidor WebSocket Servidor RFC 6455 ~
TLS 1.3 TLS 1.3 suportado pelo transporte fornecido ~ ~
Cliente HTTP/2 Cliente HTTP/2 nativo (RFC 7540 / 9113) ~
MQTT Cliente MQTT 3.1.1 / 5.0 integrado ~ ~
AMQP Cliente AMQP 0.9.1 / 1.0 integrado
STOMP Cliente STOMP 1.0 / 1.2 integrado
WAMP Cliente WAMP v1 / v2 integrado
Push de servidor / streaming Conexão push ou streaming de longa duração ~ ~ ~
Reconexão automática Reconexão automática / watchdog integrado no cliente ~ ~ ~ ~
per-message-deflate (RFC 7692) Extensão de compressão do WebSocket ~ ~ ~
Multiplataforma Win / macOS / Linux / iOS / Android ~ ~
Uso comercial permitido Licença permite uso comercial com código fechado
Código-fonte disponível Código-fonte da biblioteca é visível ao desenvolvedor
Manutenção ativa Release ou atividade marcada nos últimos 12–18 meses ~ ~
Modelo de licença Tipo de licença Comercial BSD / MPL (open source) Gratuita, com código-fonte disponível Comercial MPL / GPL / LGPL (open source) Varia (tipicamente MIT / BSD / Apache)
Suporte nativo documentado Não fornecido nativamente ~ Parcial / via add-on / não verificado

Encaixe honesto para cada biblioteca

Toda biblioteca aqui tem um público real. A escolha certa depende da amplitude de protocolos, da preferência de licença e das dependências que você já tem.

Escolha sgcWebSockets

Escolha sgcWebSockets quando você precisar de WebSocket mais protocolos de mensageria (MQTT, AMQP, STOMP, WAMP), HTTP/2 e clientes de IA/LLM num único conjunto de componentes, com uma única licença comercial, ampla cobertura de versões Delphi (7–13) incluindo C++ Builder, e alvos FireMonkey para macOS, iOS, Android e Linux.

Escolha Indy (Internet Direct)

Escolha Indy quando WebSocket em si não for o requisito — por exemplo, quando você precisar de um toolkit TCP/UDP com licença permissiva e suporte maduro a HTTP, SMTP, POP3, IMAP, FTP e NNTP, ou quando quiser estender o TIdHTTPServer existente com seu próprio handler de upgrade WebSocket. O Indy vem com o RAD Studio, então não acrescenta nada à sua pegada de dependências.

Escolha ICS (Internet Component Suite)

Escolha ICS quando você quiser uma suíte de redes open-source para Delphi com cliente e servidor WebSocket, TLS 1.3 moderno (incluindo criptografia pós-quântica no V9.6) sobre OpenSSL 3.x, e estiver confortável em encaminhar rotas pelo servidor web ICS existente. O ICS é uma release de longo prazo que acompanha as versões mantidas ativamente do OpenSSL.

Escolha TMS FNC WebSocket / TMS Sparkle

Escolha TMS FNC WebSocket quando WebSocket for o único protocolo de rede de que você precisa em VCL e FireMonkey, quando você já licenciar outros componentes TMS FNC (o estilo de API visual e não-visual permanece consistente), ou quando quiser especificamente a história de cross-framework do FNC (um único código-base entre VCL e FMX). Para hospedagem de serviços HTTP e HTTP/S, o TMS Sparkle se combina com o TMS XData.

Escolha mORMot 2

Escolha mORMot 2 quando você quiser um framework open-source full-stack (ORM, SOA, REST, WebSocket, OpenAPI) para Object Pascal sob MPL/GPL/LGPL, quando seu servidor rodar em Linux com FPC, ou quando você quiser um único framework abrangendo o banco de dados, a lógica de negócio e o transporte WebSocket.

Escolha bibliotecas MQTT independentes

Escolha uma biblioteca MQTT independente quando MQTT for o único protocolo de que você precisa, quando o projeto puder depender apenas de código com licença permissiva e quando você quiser ler cada linha da implementação do protocolo de fio. Audite o histórico de commits do projeto escolhido antes de se comprometer com ele — a atividade varia bastante entre autores.

Migrando para o sgcWebSockets — o que muda

Notas rápidas sobre as diferenças de API e recursos caso você esteja migrando de uma das bibliotecas acima. Sem confronto — apenas o mapeamento prático.

Migrando do Indy (Internet Direct)

O Indy fornece o transporte bruto HTTP e TCP; o sgcWebSockets fornece o framing WebSocket, ping/pong, reconexão automática, subprotocolos (MQTT/AMQP/STOMP/WAMP) e per-message-deflate integrados. Se você tem um servidor HTTP baseado em Indy hoje, o sgcWebSockets oferece um TsgcWebSocketHTTPServer separado, e não um plug-in para o Indy — as rotas HTTP existentes precisam ser reimplementadas no servidor sgc, ou rodar ambos em paralelo em portas diferentes.

Migrando do ICS (Internet Component Suite)

Ambas as bibliotecas expõem um cliente WebSocket e um servidor WebSocket sobre HTTP. Os protocolos de mensageria nomeados (MQTT, AMQP, STOMP, WAMP) e os clientes de AI/LLM e de APIs de exchanges são exclusivos do sgcWebSockets. Se você atualmente executa um servidor web ICS com rotas WebSocket, o sgcWebSockets fornece TsgcWebSocketHTTPServer como um host HTTP+WS substituto, mas a API de registro de rotas é diferente.

Migrando do TMS FNC WebSocket / TMS Sparkle

O sgcWebSockets e o TMS FNC WebSocket implementam ambos o cliente e servidor RFC 6455. Migre trocando a classe de componente e reconectando os eventos. As camadas de protocolo construídas em cima (MQTT, AMQP, STOMP, WAMP), o cliente e servidor HTTP/2, e as 30+ integrações com APIs de terceiros são exclusivos do sgcWebSockets. Se você usa o TMS MQTT separadamente, o sgcWebSockets inclui o MQTT na mesma suíte.

Migrando do mORMot 2

O mORMot 2 encapsula o WebSocket dentro da sua camada SOA; o sgcWebSockets fornece um componente WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP independente que você pode adicionar a qualquer projeto Delphi. Se sua aplicação usa os recursos ORM e SOA do mORMot 2, migrar para o sgcWebSockets significa reimplementar a camada SOA; se você usou o mORMot 2 apenas para transporte WebSocket, o sgcWebSockets é uma substituição mais direta.

Migrando de bibliotecas MQTT independentes

Se você atualmente usa uma biblioteca MQTT independente e começa a adicionar WebSocket, HTTP/2, AMQP ou clientes de API AI/LLM, o sgcWebSockets consolida tudo isso em uma única suíte, com uma única licença e um único canal de atualização.

Cada célula na matriz acima remete a uma destas páginas de documentação oficial, repositórios ou notas de lançamento. Todos os URLs foram verificados no momento da redação.

FonteURL
sgcWebSockets — página do produtohttps://www.esegece.com/products/websockets/
sgcWebSockets — matriz de recursos Delphihttps://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — página do projeto (indyproject.org)https://www.indyproject.org/
Indy — repositório GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — releases (última versão marcada: 10.6.3.14)https://github.com/IndySockets/Indy/releases
ICS — notas de lançamento V9.0 (suporte a WebSocket introduzido)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — notas de lançamento V9.6 (TLS 1.3 / PQC)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — página de download (versão estável mais recente)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — página do produtohttps://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — página do produtohttps://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — repositório GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (lista de protocolos, alvos suportados)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — releases (v2.4 estável)https://github.com/synopse/mORMot2/releases
Fórum Synopse (Object Pascal SOA / ORM)https://synopse.info/
Tópico GitHub: delphi-mqtt (clientes MQTT de propósito único da comunidade)https://github.com/topics/delphi-mqtt
RFC 6455 — O Protocolo WebSockethttps://datatracker.ietf.org/doc/html/rfc6455
RFC 7692 — Extensões de Compressão para WebSocket (per-message-deflate)https://datatracker.ietf.org/doc/html/rfc7692

Experimente o sgcWebSockets

Baixe a edição Trial gratuita e compare o sgcWebSockets com sua biblioteca atual na sua própria aplicação.