Supabaseは、オープンソースの Firebase 代替製品です。エンタープライズグレードのオープンソースツールを使って、Firebase の機能を構築しています。
詳しいドキュメントはsupabase.com/docsをご覧ください。
コントリビュート方法はGetting Startedをご覧ください。
- コミュニティフォーラム どんな時に使うか:構築の手助け、データベースのベストプラクティスに関する議論など
- GitHub Issue どんな時に使うか: Supabase で起こったバグやエラーについて
- Email サポート どんな時に使うか: ユーザー自身のデータベースやインフラに何か問題が発生した場合
- Discord どんな時に使うか: アプリケーションの共有やコミュニティとの交流
- Alpha: 限られたユーザーで Supabase をテストしています。
- Public Alpha: 誰でもsupabase.com/dashboardから登録ができます。ただし、バグなどがある可能性がありますので、ご容赦ください。
- Public Beta: 企業以外のほとんどのユースケースに耐えうる十分な安定性を確保。
- Public: 実用的な用途に対応
現在、Public Beta を実施しています。このリポジトリの"releases"にてメジャーアップデートに関する情報を発信しています。
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クライアントに同梱) | ||||
---|---|---|---|---|---|---|
Supabase | PostgREST | GoTrue | Realtime | Storage | Functions | |
⚡️ 公式 ⚡️ | ||||||
JavaScript (TypeScript) | supabase-js | postgrest-js | gotrue-js | realtime-js | storage-js | functions-js |
💚 コミュニティ 💚 | ||||||
C# | supabase-csharp | postgrest-csharp | gotrue-csharp | realtime-csharp | storage-csharp | functions-csharp |
Flutter | supabase-dart | postgrest-dart | gotrue-dart | realtime-dart | storage-dart | functions-dart |
Go | - | postgrest-go | - | - | storage-go | - |
Java | - | - | gotrue-java | - | - | - |
Kotlin | supabase-kt | postgrest-kt | gotrue-kt | realtime-kt | storage-kt | functions-kt |
Python | supabase-py | postgrest-py | gotrue-py | realtime-py | storage-py | functions-py |
Ruby | supabase-rb | postgrest-rb | - | - | - | - |
Rust | - | postgrest-rs | - | - | - | - |
Swift | supabase-swift | postgrest-swift | gotrue-swift | realtime-swift | storage-swift | - |