Hasura GraphQL Engine - это сверхбыстрый графический сервер позволяющий создавать **мгновенный GraphQL API работающий в режиме реального времени в базе данных Postgres**, с [**webhook триггерами**](../event-triggers.md) на основе событий в базе данных, и [**remote schemas**](../remote-schemas.md) для бизнес-логики.
Hasura помогает строить GraphQL приложения при поддержке Postgres или постепенно перейти на GraphQL для уже существующих приложений, использующих Postgres.
Подробнее на [hasura.io](https://hasura.io) и [docs](https://hasura.io/docs).
* **Режим реального времени**: Конвертируйте любой запрос GraphQL в запрос в режиме реального времени, используя подписку.
* **Слияние удаленных схем**: Доступ к пользовательским схемам GraphQL для бизнес-логики через единую конечную точку GraphQL Engine. [**Подробнее**](../remote-schemas.md).
* **Запуск webhook-ов или serverless функций**: В ответ на события Postgres insert/update/delete.([ подробнее](../event-triggers.md))
* **Работает с существующими базами данных**: Направьте его на существующую базу данных Postgres, чтобы мгновенно получить готовый к использованию GraphQL API.
* **Подробный контроль доступа**: Динамический контроль доступа, интегрируемый с Auth системой (напр: auth0, firebase-auth).
* **Высокая производительность и малое воздействие**: ~15MB изображение docker-a; ~50MB RAM @ 1000 req/s; многоядерный.
* **Интерфейс администрирования и миграции**: Интерфейс администрирования и миграция схемы на Rails
* **Postgres** ❤️: Поддержка Postgres типов (PostGIS/geo-location, и т.д.), преобразуется в *graphs*, запускает процедуры или функции, сохраненные посредством мутаций.
Подробнее на [hasura.io](https://hasura.io) и [docs](https://hasura.io/docs).
## Содержание
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc -->
**Содержание**
- [Быстрый запуск:](#быстрый-запуск)
- [Деплоймент одним кликом на Heroku](#деплоймент-одним-кликом-на-Heroku)
- [Другие методы деплоймента](#другие-варианты-деплоймента-одним-кликом)
- [Запуск webhook по событиям в базе данных](#запуск-webhook-по-событиям-в-базе-данных)
- [Demos](#demos)
- [Приложения в режиме реального времени](#приложения-в-режиме-реального-времени)
- [Видео](#видео)
- [Поддержка и устранение неисправностей](#поддержка-и-устранение-неисправностей)
- [Контрибуция](#контрибуция)
- [Элементы бренда](#элементы-бренда)
- [Лицензия](#лицензия)
<!-- markdown-toc end -->
## Быстрый запуск:
### Деплоймент одним кликом на Heroku
Самый быстрый способ попробовать Hasura через Heroku.
1. Нажмите на кнопку ниже, чтобы развернуть GraphQL Engine на Heroku с бесплатным дополнением Postgres:
[![Деплоймент в Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku)
2. Откройте консоль Hasura
Посетите `https://<app-name>.herokuapp.com` (*замените \<app-name\> с именем вашего приложения*) чтобы открыть консоль администрирования.
3. Сделайте свой первый GraphQL-запрос
Создайте таблицу и сразу же выполните свой первый запрос. Следуйте следующим указаниям [простое руководство](https://hasura.io/docs/1.0/graphql/manual/getting-started/first-graphql-query.html).
### Другие варианты деплоймента одним кликом
Ознакомьтесь со следующими инструкциями по деплойменте одним кликом:
| DigitalOcean | [![Deploy to DigitalOcean](https://graphql-engine-cdn.hasura.io/img/create_hasura_droplet_200px.png)](https://marketplace.digitalocean.com/apps/hasura?action=deploy&refcode=c4d9092d2c48&utm_source=hasura&utm_campaign=readme) | [docs](https://hasura.io/docs/1.0/graphql/manual/guides/deployment/digital-ocean-one-click.html#hasura-graphql-engine-digitalocean-one-click-app) |
| Azure | [![Deploy to Azure](http://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3a%2f%2fraw.githubusercontent.com%2fhasura%2fgraphql-engine%2fmaster%2finstall-manifests%2fazure-container-with-pg%2fazuredeploy.json) | [docs](https://hasura.io/docs/1.0/graphql/manual/guides/deployment/azure-container-instances-postgres.html) |
### Другие методы деплоймента
Для методов деплоймента на базе Docker и расширенных опций конфигурации, ознакомьтесь с [руководство по деплойменту](https://hasura.io/docs/1.0/graphql/manual/getting-started/index.html) или
[установока манифестов](../install-manifests).
## Архитектура
Hasura GraphQL Engine расположен перед базой данных Postgres и может принимать запросы GraphQL от ваших клиентских приложений. Он может быть сконфигурирован для работы с вашей существующей системой Auth и может управлять доступом с помощью правил полевого уровня с динамическими переменными из вашей системы auth.
Вы также можете объединить удаленные GraphQL схемы и предоставить единый GraphQL API.
Hasura работает с любым GraphQL клиентом. Мы рекомендуем использовать [Apollo Client](https://github.com/apollographql/apollo-client). Посетите [awesome-graphql](https://github.com/chentsulin/awesome-graphql) для списка клиентов.
## Добавить бизнес-логику
GraphQL Engine предоставляет простые в обосновании, масштабируемые и производительные методы для добавления бизнес-логики в ваш бэкенд:
### Схемы удаленного доступа
Добавьте пользовательские преобразователи в удаленную схему в дополнение к схеме GraphQL на основе Postgres Hasura. Идеально подходит для использования в таких случаях, как имплементация платежного API или запрос данных, отсутствующих в вашей базе данных. - [подробнее](../remote-schemas.md).
### Запуск webhook по событиям в базе данных
Добавьте асинхронную бизнес-логику, которая срабатывает на основе событий в базе данных.
Идеально подходит для уведомлений, каналов передачи данных от Postgres или асинхронной обработки - [подробнее](../event-triggers.md).
### Полученные данные или трансформация данных
Преобразование данных в Postgres или запуск бизнес-логики для получения другого набора данных, который можно запросить с помощью GraphQL Engine. - [подробнее](https://hasura.io/docs/1.0/graphql/manual/queries/derived-data.html).
- Приложение для отслеживания местоположения в реальном времени, показывающее движущееся транспортное средство, изменяющее текущие GPS-координаты, движущееся по карте.
* [Добавьте GraphQL к экземпляру GitLab, размещенному на вашем сервере](https://www.youtube.com/watch?v=a2AhxKqd82Q) (*3:44 мин*)
* [Приложение Todo с Auth0 и GraphQL бэкенд](https://www.youtube.com/watch?v=15ITBYnccgc) (*4:00 мин*)
* [GraphQL на GitLab интегрированный с GitLab auth](https://www.youtube.com/watch?v=m1ChRhRLq7o) (*4:05 мин*)
* [Таблица для 10 миллионов ездок с геолокацией (PostGIS, Timescale)](https://www.youtube.com/watch?v=tsY573yyGWA) (*3:06 мин*)
## Поддержка и устранение неисправностей
Документация и сообщество поможет вам решить большинство проблем. Если вы столкнулись с ошибкой или вам нужно связаться с нами, вы можете использовать один из следующих каналов связи:
* Поддержка и обратная связь: [Discord](https://discord.gg/vBPpJkS)
* Проблема и отслеживание ошибок: [GitHub issues](https://github.com/hasura/graphql-engine/issues)
* Следите за обновлениями продукта: [@HasuraHQ](https://twitter.com/hasurahq)
* Поговорите с нами [чат на сайте](https://hasura.io)
Мы стремимся создать открытую и доброжелательную атмосферу в сообществе. Пожалуйста, ознакомьтесь с [Кодекс поведения](../code-of-conduct.md).
Если вы хотите сообщить о проблеме безопасности, пожалуйста, [прочитайте это](../SECURITY.md).
## Контрибуция
Ознакомьтесь с нашим [руководством по контрибуции](../CONTRIBUTING.md) для более подробной информации.
## Элементы бренда
Элементы бренда Hasura (логотипы, Hasura значки и т.д.) можно найти в [assets/brand](../assets/brand) папке. Можете использовать их в вашем приложении / веб-сайте и т.д.
Мы были бы рады, если бы вы добавили "Powered by Hasura" бейдж к вашим приложениям, построенным с помощью Hasura.. ❤️