Проект RethinkDB, развивающий документо-ориентированную СУБД, обеспечивающую хранение данных в формате JSON, анонсировал первый официальный выпуск платформы Horizon, предоставляющей разработчикам универсальный серверный бэкенд для работы web-приложений, хранящих данные на сервере и обменивающихся информацией в реальном режиме времени. Код Horizon написан на языке JavaScript и распространяется под лицензией MIT.

Используя Horizon разработчики могут сосредоточить всё внимание на создании работающего в браузере кода приложения, обращаясь к типовому бэкенду через специальный API, который кроме работы с данными также позволяет организовать аутентификацию, разграничение доступа, управление пользователями и другие функции. По своей сути Horizon может рассматриваться как открытая и запускаемая на своих мощностях альтернатива продвигаемого компанией Google проприетарного сервиса Firebase.

Horizon включает в себя:

  • Сервер для организации работы бэкенда, построенный на базе фреймворка Node.js, технологии WebSocket и СУБД RethinkDB, обеспечивающий построенное хранение данных, аутентификацию пользователей, проверку прав доступа и перенаправление потоков между приложениями в режиме реального времени.
  • Клиентская JavaScript-библиотека, которую можно использовать на стороне выполняемого в браузере web-приложения (фронтэнда) для сохранения JSON-документов в БД, отправки запросов и подписки на получение обновлений информации;
  • Утилита командной стоки "hz" для генерации шаблонов типовых проектов, запуска локального сервера Horizon и размещение приложений в облаке.

Первый выпуск предоставляет следующие API:

  • Subscribe - потоковый API для построения realtime-приложений, работающих в браузере без необходимости написания серверного кода;
  • Auth - API аутентификации, поддерживающий типовых провайдеров аутентификации, включая Facebook, Twitter, Google и GitHub
  • Identity - API для управления учётными записями пользователей;
  • Permissions - модель безопасности, позволяющая разработчику ограничить доступ к данным;

В будущих выпусках планируется появление:

  • Session - управления сеансами;
  • Geolocation - API для создания приложений, манипулирующих данными о местоположении пользователя;
  • Presence - API для определения присутствия пользователя в online и информирования об этом других пользователей;
  • Plugins - система подключения плагинов, расширяющих функциональность Horizon, например, средства для создания новых сервисов;
  • Backend - API и протокол для интеграции написанных с использованием библиотеки Horizon web-приложений со сторонними реализациями бэкендов.
  • Встроенный web-интерфейс для интерактивного просмотра данных на бэкенде;
  • Улучшенные средства управления соединениями и восстановлением после разрыва связи;
  • Возможность создания собственных команд Horizon с использованием языка запросов ReQL и JavaScript;
  • Поддержка загрузки файлов от клиента;
  • Аутентификация по паролю (в дополнение к OAuth-провайдерам);
  • Встроенная поддержка извлечения данных с использованием языка запросов GraphQL.


Источник: http://www.opennet.ru/opennews/art.shtml?num=44464