Проект RethinkDB, развивающий документо-ориентированную СУБД, обеспечивающую (https://www.opennet.me/opennews/art.shtml?num=42072) хранение данных в формате JSON, анонсировал (http://horizon.io/blog/horizon-launch/) первый официальный релиз платформы Horizon (http://horizon.io/), в рамках которой развивается бэкенд, предоставляющий разработчикам средства для создания и масштабирования web-приложений, обменивающихся данными в реальном режиме времени. По своей сути Horizon может рассматриваться как открытая и запускаемая на своих мощностях альтернатива продвигаемого (https://firebase.googleblog.com/2016/05/firebase-expands-to-...) компанией Google проприетарного сервиса Firebase. Код Horizon написан на языке JavaScript и распространяется (https://github.com/rethinkdb/horizon) под лицензией MIT.
Horizon включает в себя:
- Сервер (https://github.com/rethinkdb/horizon/blob/next/server) для организации работы бэкенда, построенный на базе фреймворка Node.js, технологии WebSocket и СУБД RethinkDB, обеспечивающий построенное хранение данных, аутентификацию пользователей, проверку прав доступа и перенаправление потоков между приложениями в режиме реального времени.
- Клиентская JavaScript-библиотека (https://github.com/rethinkdb/horizon/blob/next/client), которую можно использовать на стороне выполняемого в браузере web-приложения (фронтэнда) для сохранения JSON-документов в БД, отправки запросов и подписки на получение обновлений информации;
- Утилита командной стоки (https://github.com/rethinkdb/horizon/blob/next/cli) "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 (https://www.opennet.me/opennews/art.shtml?num=42964).
URL: http://horizon.io/blog/horizon-launch/
Новость: http://www.opennet.me/opennews/art.shtml?num=44464