La otra librería de red Delphi de larga trayectoria
Para los desarrolladores Delphi que en 2026 buscan una librería de red, tres nombres tienden a aparecer: Indy, Overbyte ICS (Internet Component Suite de François Piette) y sgcWebSockets. ICS lleva por aquí casi tanto como Indy y tiene una base de seguidores leal, especialmente entre desarrolladores que aprecian su arquitectura no bloqueante basada en cola de mensajes. sgcWebSockets es la librería comercial más reciente centrada en protocolos modernos.
Este artículo compara las dos cara a cara: cobertura de funciones, soporte WebSocket, HTTP/2 y HTTP/3, licencia, experiencia de desarrollo y soporte comercial. Donde la comparación depende de una release ICS concreta, las afirmaciones se basan en la serie v9 documentada públicamente en el momento de escribir — consulta el changelog actual de ICS si necesitas confirmar una función exacta.
Orígenes y filosofía de diseño
ICS nació en los 90 como un conjunto de envoltorios WinSock asíncronos y event-driven. Los componentes clásicos de ICS (TWSocket, THttpCli, TSslHttpServer) usan un modelo no bloqueante basado en cola de mensajes: cada operación de socket envía un mensaje de Windows y tú respondes en un manejador de evento. Ese modelo encaja maravillosamente con la VCL de Delphi — sin hilos, sin primitivas de sincronización, corre en el hilo principal. ICS añadió más tarde un servidor HTTP con thread-pool (TSslHttpAppSrv) para mayor concurrencia.
sgcWebSockets se diseñó alrededor de un problema distinto: conexiones bidireccionales de larga vida (WebSocket, MQTT, SSE, streams estilo gRPC) y pilas de transporte modernas (HTTP/2, HTTP/3 sobre QUIC). Usa un servidor basado en IOCP en Windows para escalar y un modelo de cliente event-driven para mensajería de baja latencia. También envuelve Indy e ICS como backends HTTP alternativos, para que puedas elegir el transporte que encaja con tu entorno.
Comparación función a función
| Función | Overbyte ICS (v9, al escribir) | sgcWebSockets |
|---|---|---|
| Cliente HTTP/1.1 | Sí (THttpCli, TSslHttpCli) | Sí, múltiples backends |
| Servidor HTTP/1.1 | Sí (TSslHttpAppSrv) | Sí |
| Cliente WebSocket | Sí (desde v8) | Sí, RFC 6455 completo |
| Servidor WebSocket | Sí (desde v8) | Sí, subprotocolos, per-message deflate, canales |
| HTTP/2 | Limitado / no es función de primera clase | Sí, capa HPACK + frame completa |
| HTTP/3 / QUIC | No | Sí (basado en msquic) |
| MQTT 3.1.1 / 5.0 | Sin broker nativo, sólo cliente básico | Cliente + broker completos, ambas versiones |
| AMQP 1.0 / 0.9.1 | No | Sí |
| STOMP, SSE, WAMP | SSE básico, el resto no | Todos soportados |
| WebRTC / STUN / TURN / DTLS-SRTP | No | Sí |
| CoAP, AWS IoT, Azure IoT | No | Sí |
| SMTP / POP3 / IMAP / FTP / NNTP | Sí, implementaciones maduras | No (usa Indy o ICS) |
| Bindings OpenSSL | Sí, muy al día | Sí, más SChannel y BoringSSL |
| Más de 30 wrappers de APIs REST (OpenAI, Anthropic, AWS, Azure, exchanges) | No | Sí |
| Licencia | Gratis, estilo mozilla | Comercial, Edición Free disponible |
| Versiones de Delphi | D7 hasta D13 | D7 hasta D13 |
| Mantenimiento | Activo, liderado por fabricante (Magenta Systems) | Activo, liderado por fabricante, releases mensuales |
| Soporte comercial | Contratos de soporte de pago opcionales | Incluido con ediciones de pago |
Soporte WebSocket
ICS añadió componentes WebSocket en v8 (TIcsWebSocketClient, lado servidor vía TSslHttpAppSrv con manejadores WebSocket). Cubren RFC 6455 y TLS, lo cual basta para muchos casos de uso. Lo que ICS no proporciona aún de fábrica es per-message deflate por defecto, canales / grupos de broadcast con nombre, WatchDog de reconexión automática, glue de cliente JavaScript, ni protocolos integrados sobre WebSocket (WebSocket-MQTT, WebSocket-STOMP, WAMP).
sgcWebSockets trata WebSocket como el centro del universo. El servidor multiplexa HTTP y WebSocket en el mismo puerto, viene con helpers de canales y broadcast, incluye un cliente JavaScript que refleja la API Delphi y añade reconexión automática WatchDog, heartbeat ping/pong, colas de mensajes y un componente balanceador estilo LB. Si vives y respiras WebSocket, la experiencia de desarrollo es notablemente más rica.
HTTP/2 y HTTP/3
Esta es el área con la mayor brecha. Al escribir, ICS no lista HTTP/2 como función de primera clase en las notas de versión de la v9 — algún trabajo experimental se ha debatido en la lista de correo pública pero el camino recomendado para HTTP/2 dentro de una aplicación ICS es usar una librería separada.
sgcWebSockets distribuye una implementación HTTP/2 completa desde 2018, incluyendo el algoritmo de compresión de cabeceras HPACK, multiplexación de frames, server push y negociación ALPN. La misma ruta de código la usa el cliente Apple Push Notification, el cliente Google FCM y cualquier endpoint servidor HTTP/2 que construyas. HTTP/3 sobre QUIC se añadió en 2023 usando la librería msquic de Microsoft en Windows y ngtcp2 en Linux. Para aplicaciones que necesitan soporte de transporte de vanguardia, esto es un diferenciador relevante.
Protocolos clásicos de Internet
ICS gana claramente aquí. SMTP, POP3, IMAP, FTP, NNTP, DNS e incluso un servidor proxy HTTP están incluidos y bien mantenidos. Si construyes un cliente de email, un front-end FTP o un relay SMTP, ICS es un punto de partida más fuerte que sgcWebSockets (que no incluye esos protocolos en absoluto).
Una combinación habitual es usar ICS para la capa de correo/FTP y sgcWebSockets para la capa WebSocket / HTTP/2 / MQTT en el mismo producto. Ambas librerías coexisten felizmente porque tienen namespaces de unit separados.
SSL / TLS
Ambas librerías se toman TLS en serio. ICS es muy conocida por seguir las nuevas releases de OpenSSL con extrema rapidez — las nuevas versiones menores de OpenSSL 3.x suelen estar soportadas en días. sgcWebSockets también sigue OpenSSL y adicionalmente soporta SChannel de Windows y BoringSSL, más su propia capa de cifrado de extremo a extremo para confidencialidad a nivel de aplicación sobre TLS.
Experiencia de desarrollo
ICS usa una API event-driven al estilo cola de mensajes que es muy natural dentro de un form VCL — arrastras un componente, conectas OnDataAvailable u OnRequestDone, y los mensajes de Windows dirigen el flujo. Es ligera en hilos, fácil de depurar e idiomática para el desarrollo VCL clásico. La desventaja es que escalar más allá de una sola cola de mensajes requiere o bien las variantes de servidor con thread-pool o diseños multi-instancia explícitos.
sgcWebSockets sigue la convención de componentes más reciente que usan Indy y las librerías REST modernas: un componente con sub-objetos de opciones fuertemente tipados (HeartBeat, WatchDog, TLSOptions, etc.), callbacks event-driven e hilos worker por debajo. El transporte de servidor IOCP escala a decenas de miles de conexiones concurrentes sin cambios en el código del usuario.
Licencia y precio
ICS es gratis tanto para uso comercial como no comercial bajo una licencia estilo Mozilla. Magenta Systems ofrece contratos de soporte comercial opcionales. sgcWebSockets es comercial, con una Edición Free para uso no comercial y cuatro ediciones de pago (Standard, Professional, Enterprise, All-Access). Las ediciones de pago incluyen código fuente, actualizaciones mensuales y soporte directo del fabricante.
Matriz de decisión
| Si necesitas… | Mejor elección |
|---|---|
| Clientes SMTP, POP3, IMAP, FTP, NNTP | ICS |
| Pequeño fetcher HTTP de un único form sin threading | ICS |
| Seguimiento punta de OpenSSL | ICS (sgc está muy cerca) |
| Cliente/servidor WebSocket con canales, WatchDog, cliente JS | sgcWebSockets |
| Cliente o servidor HTTP/2, Apple Push, FCM | sgcWebSockets |
| HTTP/3 / QUIC | sgcWebSockets |
| Broker MQTT 5, AMQP 1.0, WAMP, STOMP | sgcWebSockets |
| WebRTC, STUN, TURN, IoT, CoAP | sgcWebSockets |
| Componentes listos de OpenAI / Anthropic / APIs cloud | sgcWebSockets |
| Contrato de soporte comercial del fabricante | Cualquiera — sgcWebSockets incluido, ICS opcional |
Reflexiones finales
ICS y sgcWebSockets no son realmente competidores sino más bien herramientas complementarias. ICS es una librería bellamente diseñada, gratis y amistosa con la cola de mensajes, que destaca en protocolos clásicos de Internet y HTTP ligero. sgcWebSockets es una librería comercial focalizada que se adueña de la pila web moderna — WebSocket, HTTP/2/3, MQTT, AMQP, WebRTC, IoT, APIs de IA — y escala a grandes números de conexiones concurrentes. La respuesta correcta para muchos proyectos reales es usar ambas, eligiendo cada librería para los protocolos que mejor hace.