Sobre el proyecto

Centrifugo es un servidor de mensajería en tiempo real de código abierto y escalable, diseñado para entregar mensajes a usuarios en línea a través de varios transportes, incluyendo WebSocket, HTTP-streaming, Server-Sent Events (SSE), GRPC y WebTransport (experimental). Implementa un modelo PUB/SUB orientado al usuario donde los clientes se suscriben a canales y reciben mensajes publicados por un backend a través de una API HTTP o GRPC simple. Esto lo hace agnóstico al lenguaje y adecuado para construir aplicaciones de chat, comentarios en vivo, juegos multijugador, paneles de control en tiempo real, herramientas colaborativas y respuestas de streaming de IA. Las características clave incluyen: - **Transportes eficientes**: WebSocket, HTTP-streaming, SSE, GRPC, WebTransport. - **Escalabilidad**: Soporte integrado para Redis (incluyendo Redis Cluster y almacenes compatibles como Valkey, KeyDB, DragonflyDB), PostgreSQL o Nats para escalado horizontal. - **API de servidor simple**: Endpoints HTTP y GRPC para comunicación con el backend. - **Consumidores asíncronos**: Consumidores de PostgreSQL y Kafka para patrones de outbox transaccional y CDC. - **Autenticación flexible**: Autenticación basada en JWT o tipo proxy mediante solicitudes al backend. - **Modelo de suscripción rico**: Stream (lado del cliente/servidor), mapa, sondeo compartido y flujos de suscripción proxy. - **Permisos de canal**: Concepto de espacio de nombres y varias estrategias de permisos. - **Historial de mensajes y recuperación**: Historial activo con recuperación automática al reconectar, más modo de recuperación de caché. - **Compresión delta**: Basada en el algoritmo Fossil para reducir el ancho de banda. - **Presencia**: Presencia de canal en línea con notificaciones de unirse/salir. - **RPC**: Envío de llamadas RPC al backend a través de la conexión en tiempo real. - **Protocolo de cliente**: Protocolo estricto y efectivo con SDK oficiales para JavaScript, Dart/Flutter, Swift, Java, Python, Go y .NET (en progreso). - **Formatos de datos**: JSON y Protobuf binario con serialización y agrupación optimizadas. - **Interfaz de administración**: Interfaz web integrada para monitoreo y pruebas. - **Observabilidad**: Métricas de Prometheus y un panel de Grafana oficial. Centrifugo se posiciona como una alternativa autohospedada a servicios comerciales como Pubnub, Pusher y Ably, así como a frameworks como socket.io y SignalR. Está diseñado para configurarse una vez y usarse indefinidamente, desacoplando el transporte en tiempo real de la lógica de negocio. Inicio rápido con Docker: ```bash docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure ``` Luego abra http://localhost:8000 para la interfaz de administración. Las banderas inseguras son solo para pruebas locales. Para producción, siga las guías de instalación e inicio rápido en el sitio de documentación oficial (centrifugal.dev). El proyecto se mantiene activamente con soporte comunitario a través de Telegram y Discord.