Чат-сервер на uWebSockets.js — альтернатива XMPP с бэкендом на Node.js, MongoDB и Redis.
- Звёзды
- 10,951
- Форки
- 754
- Открытые issues
- 25
- Последний коммит
- вчера
Что это?
Centrifugo — сервер обмена сообщениями в реальном времени с открытым исходным кодом. Он мгновенно доставляет сообщения пользователям, подключённым через WebSocket, HTTP-streaming, Server-Sent Events, GRPC и WebTransport. Сервер PUB/SUB для взаимодействия с пользователями: клиенты подписываются на каналы, а бэкенд приложения публикует в них сообщения через простой HTTP- или GRPC API.
Centrifugo не зависит от языка бэкенда и отделяет доставку сообщений в реальном времени от бизнес-логики. Официальные клиентские SDK доступны для JavaScript, Dart/Flutter, Swift, Java, Python, Go и .NET. В простых случаях вместо SDK можно использовать любой стандартный клиент для выбранного транспорта.
Масштабирование обеспечивают Redis (в том числе Redis Cluster и совместимые хранилища), PostgreSQL или NATS. Проект также поддерживает историю каналов с восстановлением сообщений при переподключении, отображение присутствия с событиями входа и выхода, аутентификацию через JWT или прокси, дельта-сжатие, метрики Prometheus и встроенный веб-интерфейс администратора.
Ключевые возможности
- 01Доставляет сообщения через WebSocket, SSE, HTTP-streaming, GRPC и WebTransport (экспериментально).
- 02Масштабируется с помощью Redis, Redis Cluster, PostgreSQL или NATS в роли брокера.
- 03Публикует сообщения в каналы через простой серверный HTTP- или GRPC API.
- 04Поддерживает историю каналов с автоматическим восстановлением после переподключения.
- 05Показывает присутствие пользователей онлайн и отправляет уведомления о входе и выходе из канала.
- 06Поддерживает аутентификацию подключений через JWT и прокси.
- 07Предоставляет метрики Prometheus и включает встроенный веб-интерфейс администратора.
Сценарии использования
- Добавление чата или обмена сообщениями в веб- или мобильное приложение.
- Отправка комментариев, уведомлений и обновлений данных в браузеры в реальном времени.
- Трансляция ответов моделей AI пользователям в реальном времени.
- Создание многопользовательских игр и инструментов для совместной работы, которым нужна синхронизация с низкой задержкой.
Быстрый старт
- 1
Запустите Centrifugo со встроенной панелью администратора с помощью Docker
docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure - 2
Откройте http://localhost:8000, чтобы перейти к панели администратора
- 3
Следуйте инструкциям по установке нативных бинарных файлов, Homebrew, пакетов и настройке для production
Что важно знать
- В быстром старте используются небезопасные флаги, отключающие аутентификацию; их нельзя использовать в production.
- Поддержка WebTransport находится на экспериментальной стадии.
В подборках
Темы
Частые вопросы
- Что такое centrifugo?
- Независимый от языка self-hosted сервер обмена сообщениями PUB/SUB в реальном времени, который отправляет их пользователям через WebSocket, SSE, HTTP-streaming, GRPC и WebTransport. Centrifugo — сервер обмена сообщениями в реальном времени с открытым исходным кодом. Он мгновенно доставляет сообщения пользователям, подключённым через WebSocket, HTTP-streaming, Server-Sent Events, GRPC и WebTransport. Сервер PUB/SUB для взаимодействия с пользователями: клиенты подписываются на каналы, а бэкенд приложения публикует в них сообщения через простой HTTP- или GRPC API.
- centrifugo можно использовать бесплатно? Какая у него лицензия?
- centrifugo распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- centrifugo всё ещё поддерживается?
- Активно поддерживается. Последний коммит в centrifugo — 6 нояб. 2026 г..
- Для чего можно использовать centrifugo?
- Добавление чата или обмена сообщениями в веб- или мобильное приложение. Отправка комментариев, уведомлений и обновлений данных в браузеры в реальном времени. Трансляция ответов моделей AI пользователям в реальном времени. Создание многопользовательских игр и инструментов для совместной работы, которым нужна синхронизация с низкой задержкой.
- Как установить centrifugo?
- Запустите Centrifugo со встроенной панелью администратора с помощью Docker: docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure Откройте http://localhost:8000, чтобы перейти к панели администратора Следуйте инструкциям по установке нативных бинарных файлов, Homebrew, пакетов и настройке для production
- Где скачать centrifugo?
- Исходный код и инструкции по установке — на GitHub: https://github.com/centrifugal/centrifugo
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Пакет чата для Laravel с личными и групповыми сообщениями, вложениями и готовым интерфейсом мессенджера.
PHP-библиотека для отправки событий, аутентификации пользователей и запросов к каналам через HTTP API Pusher Channels.
Сервер для локального распознавания речи в реальном времени: потоковый ASR, разделение по говорящим, перевод и API, совместимые с OpenAI и Deepgram.
Подборка публичных и платных источников данных в реальном времени: финансы, транспорт, погода, новости, кибербезопасность и другие сферы.
Открытый realtime-сервер, который добавляет существующим бэкендам надёжную двустороннюю связь по WebSocket и SSE.