Supabase добавляет в существующую базу данных PostgreSQL API реального времени и RESTful без единой строки кода.
Что это
Supabase — это сервис для:
- слушать изменения в вашей базе данных PostgreSQL
- запрашивать ваши таблицы, включая фильтрацию, разбиение на страницы и глубоко вложенные отношения (точно так же, как GraphQL)
- создавать, обновлять и удалять строки
Он делает все это без необходимости писать ни строчки кода.
Что это не так
- ORM, по крайней мере, не такой, как типичные ORM. Supabase больше похожа на API, поскольку мы не требуем от вас настройки каких-либо сопоставлений, и мы взаимодействуем с вашей базой данных через производную схему, полученную в результате самоанализа вашей базы данных.
Как это работает
По своей сути Supabase — это сервер Elixir, который позволяет прослушивать вставки, обновления и удаления PostgreSQL с помощью веб-сокетов. Supabase прослушивает встроенные функции репликации Postgres, преобразует поток байтов репликации в JSON, а затем передает JSON через веб-сокеты.
Для всех функций Restful мы изучаем вашу базу данных, чтобы мгновенно предоставить полнофункциональный API.
Функции
- Быстро. Производительность и простота — две наши самые важные особенности.
- 100% открытый исходный код под лицензией Apache 2.0.
- Доступен с мобильных устройств и через Интернет с помощью простых клиентских библиотек.
- Работает без каких-либо серьезных изменений в вашей базе данных (например, добавление функций NOTIFY) или дополнительных плагинов (например, wal2json). Используя функциональность репликации PostgreSQL, мы преодолеваем многие из их ограничений. Например, NOTIFY имеет ограничение полезной нагрузки в 8000 байт, что затрудняет прослушивание массовых изменений.
Преимущества
- Вы владеете своими данными. В режиме реального времени можно указать любую базу данных PostgreSQL, в которой включена репликация.
- Прослушивание изменений данных на стороне клиента решает проблемы с устаревшими данными и конфликты обновлений.
- Многие системы, предоставляющие вам функциональность в реальном времени, требуют, чтобы вы обновлялись через тот же интерфейс, на котором находится слушатель. Supabase не зависит от источника. Обновляйте свою базу данных из любого места, и вы все равно получите изменения.