Repolode
centrifugal

centrifugal/centrifugo

Независимый от языка self-hosted сервер обмена сообщениями PUB/SUB в реальном времени, который отправляет их пользователям через WebSocket, SSE, HTTP-streaming, GRPC и WebTransport.

Open source альтернатива:PusherAblyPubNub

Звёзды
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. 1

    Запустите Centrifugo со встроенной панелью администратора с помощью Docker

    docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure
  2. 2

    Откройте http://localhost:8000, чтобы перейти к панели администратора

  3. 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 обновляется ежедневно.

Похожие проекты

Сервер для локального распознавания речи в реальном времени: потоковый ASR, разделение по говорящим, перевод и API, совместимые с OpenAI и Deepgram.

11,2 тыс.+28 за неделю1,2 тыс.PythonApache-2.0Активно поддерживаетсяОбновлён 6 дней назад