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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.