Supabaseは、オープンソースの Firebase 代替製品です。エンタープライズグレードのオープンソースツールを使って、Firebase の機能を構築しています。
- ホスティングされた Postgres データベース
- リアルタイムサブスクリプション
- 認証・認可
- API を自動生成
- ダッシュボード
- ストレージ
- 関数
詳しいドキュメントはsupabase.com/docsをご覧ください。
- コミュニティフォーラム どんな時に使うか:構築の手助け、データベースのベストプラクティスに関する議論など
- GitHub Issue どんな時に使うか: Supabase で起こったバグやエラーについて
- Email サポート どんな時に使うか: ユーザー自身のデータベースやインフラに何か問題が発生した場合
- Alpha: 限られたユーザーで Supabase をテストしています。
- Public Alpha: 誰でもapp.supabase.comから登録ができます。ただし、バグなどがある可能性がありますので、ご容赦ください。
- Public Beta: 企業以外のほとんどのユースケースに耐えうる十分な安定性を確保。
- Public: 実用的な用途に対応
現在、Public Beta を実施しています。このリポジトリの"release"にてメジャーアップデートに関する情報を発信しています。
Supabase は、オープンソースのツールを組み合わせてできています。私たちは Firebase の機能を、エンタープライズグレードのオープンソース製品を使って構築しています。ツールやコミュニティが存在し、MIT、Apache 2、または同等のオープンライセンスであれば、私たちはそのツールを使用し、サポートします。ツールが存在しない場合は、自分たちで構築してオープンソース化します。Supabase は Firebase を 1 対 1 でマッピングしたものではありません。Supabase の目的は、オープンソースのツールを使って、Firebase のような開発体験を提供することです。
現在のアーキテクチャ
Supabase はホスティングされたプラットフォームです。登録するだけで、何もインストールせずに使い始めることができます。 更に現在ローカルでの開発環境を整えており、これはプラットフォームの安定性と並んで今最優先で進めているプロジェクトになります。
- PostgreSQLは、30 年以上にわたって開発・改善されてきたオブジェクトリレーショナルデータベースシステムで、信頼性、機能の堅牢性、パフォーマンスの面で高い評価を得ています。
- Realtimeは、PostgreSQL の insert、update、delete の情報を WebSocket で受信できる Elixir サーバです。Supabase は Postgres に組み込まれたレプリケーション機能をリッスンし、レプリケーションのバイトストリームを JSON に変換し、その JSON を WebSocket でブロードキャストします。
- PostgRESTは、PostgreSQL データベースを RESTful API に直接変換するウェブサーバです。
- Storageは、S3 に保存されたファイルを管理するための RESTful なインターフェイスで、パーミッションの管理には Postgres を使用しています。
- postgres-meta は、Postgres を管理するための RESTful API で、テーブルの取得、ロールの追加、クエリの実行などを行うことができます。
- GoTrue は、ユーザー管理と SWT トークン発行のための SWT ベースの API です。
- Kong は、クラウドネイティブな API ゲートウェイです。
Supabase クライアントライブラリはモジュール化されています。それぞれのサブライブラリが、一つの外部システムのための独立した実装となっています。こうすることで、既存のツールをサポートしています。
supabase-{lang}
: 下記全てのライブラリを内包したクライアントライブラリ
レポジトリ | 公式 | コミュニティ |
---|---|---|
supabase-{lang} |
JS |
C# | Dart | Python | Rust | Ruby | Go |
postgrest-{lang} |
JS |
C# | Dart | Python | Rust | Ruby | Go |
realtime-{lang} |
JS |
C# | Dart | Python | Rust | Ruby | Go |
gotrue-{lang} |
JS |
C# | Dart | Python | Rust | Ruby | Go |