Supabase 是 Firebase 的開放原始碼替代方案。我們以企業等級的開放原始碼工具,打造 Firebase 的功能。
完整的說明文件請見:supabase.com/docs
如何貢獻請見:Getting Started
- 社群論壇。適合:打造、討論資料庫最佳作法的協助。
- GitHub Issues。適合:在使用 Supabase 的時候遇到臭蟲和錯誤。
- 電子郵件支援。適合:資料庫或基礎建設遇到的問題。
- Discord。適合:分享你的應用程式並與社群互動。
- Alpha:與少部分特定客戶測試 Supabase。
- 公開 Alpha:任何人都可以在 app.supabase.com 報名。只是務必手下留情,還有一些糾結的地方。
- 公開 Beta:已能夠穩定在大多數非企業情境使用
- 公開:可以在正式環境使用
我們現在是公開 Beta。追蹤 "Releases" 就可以收到此 Repo 的主要更新通知。
Supabase 是一套開放原始碼工具的組合包。我們以企業等級的開放原始碼產品,打造 Firebase 的功能。如果是既有的工具和社群,且具有 MIT、Apache 2 或相等的開放授權,就會採用並支援該工具。如果是不存在的工具,則自行打造並開放原始碼。Supabase 並非 1-1 對應 Firebase 功能。我們的目標是讓開發者以開放原始碼工具,獲得類似 Firebase 的開發體驗。
目前架構
Supabase 是託管平台。只要註冊,不必安裝任何東西,就可以開始使用 Supabase。你也可以自託管和本地端開發。
- PostgreSQL 是經歷 30 年活躍開發的關聯物件資料庫系統,因此擁有可靠度、功能細緻度與效能著稱。
- Realtime 是利用 Websocket 監聽 PostgreSQL 的 insert、update 和 delete 的 Elixir 伺服器。Supabase 監聽 Postgres 內建的複寫 (Replication) 功能,將複寫的 byte stream 轉換為 JSON 格式,接著透過 Websocket 將 JSON 進行廣播。
- PostgREST 是直接把 PostgreSQL 轉變成 RESTful API 的網頁伺服器
- Storage 提供管理放置在 S3 檔案的 RESTful 介面,使用 Postgres 管理權限。
- postgres-meta 是管理 Postgres 的 RESTful API,可以 fetch 資料表、新增角色以及執行查詢…等。
- GoTrue 是基於 SWT 的 API,用來管理使用者,以及發送 SWT token。
- Kong 是雲端原生的 API Gateway。
客戶端 Library 是模組化的。每個子 Library 都是單一外部系統的獨立實作。這是支援既有工具的方法之一。
語言 | 客戶端 | 精選客戶端(包含在 Supabase 客戶端) | ||||
---|---|---|---|---|---|---|
Supabase | PostgREST | GoTrue | Realtime | Storage | Functions | |
⚡️ 官方 ⚡️ | ||||||
JavaScript (TypeScript) | supabase-js | postgrest-js | gotrue-js | realtime-js | storage-js | functions-js |
Flutter | supabase-flutter | postgrest-dart | gotrue-dart | realtime-dart | storage-dart | functions-dart |
💚 社群 💚 | ||||||
C# | supabase-csharp | postgrest-csharp | gotrue-csharp | realtime-csharp | storage-csharp | functions-csharp |
Go | - | postgrest-go | gotrue-go | - | storage-go | functions-go |
Java | - | - | gotrue-java | - | storage-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 | functions-swift |
Godot Engine (GDScript) | supabase-gdscript | postgrest-gdscript | gotrue-gdscript | realtime-gdscript | storage-gdscript | functions-gdscript |