Mail.RuПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты

Программное обеспечение
с открытым исходным кодом

Это означает, что любой может заглянуть внутрь —
изучить, как работает программа, убедиться, что в ней
нет вирусов, и даже внести свои изменения.

На этом ресурсе собрана информация об открытых
разработках Mail.Ru Group и ее сотрудников.

Centrifugo

Centrifugo — сервер для обмена сообщениями в режиме реального времени, поддерживающий клиентские соединения по протоколу Websocket или использующих SockJS. Позволяет с минимальными усилиями реализовать приложения, требующие моментальной доставки сообщений клиентам, — чаты, нотификации, счетчики, игры и т.д.

Сервер написан на языке Go и позволяет обслуживать тысячи одновременных соединений из браузеров или иных сред.

Проект разрабатывает сотрудник Mail.Ru Александр Емелин.

Ключевые особенности

  • Независимость от языка, на котором написано ваше приложение, простая интеграция без необходимости менять код и философию вашего проекта
  • Возможность обрабатывать большое число одновременных соединений
  • HTTP API для общения с сервером со стороны бекенда приложения (публикация новых сообщений в каналы и т.д.). Готовые API клиенты для Python, PHP, Ruby, NodeJS и Go
  • Javascript-клиент для клиентских соединений из браузера. Поддерживает как чистый протокол Websocket, так и полифил-библиотеку SockJS
  • Встроенный механизм авторизации соединений на основе SHA-256 HMAC-токена
  • Информация о пользователях в каналах
  • История последних сообщений в каналах
  • Восстановление пропущенных во время переподключения сообщений (например, после обрыва интернет-соединения)
  • События о подписке на канал и отписке от канала
  • Различные типы каналов — публичные, приватные, ограниченные по ID пользователя и другие
  • Различные опции каналов и их гибкие настройки
  • Административный веб-интерфейс (опционально)
  • Возможность поднять несколько инстансов сервера на разных машинах и связать их в кластер используя Redis в качестве брокера.
  • Сервер готов к деплою (релизы в виде одного бинарного файла, docker-image, rpm, конфигурация Nginx)
  • Лицензия MIT

Ссылки