開源BaaS平臺Supabase介紹

2023-07-17 15:02:52

Supabase 介紹

Supabase 是一個開源的 Firebase 替代品,以BaaS的形式向各種應用程式提供了一系列的後端功能,可以幫助開發者更快地構建產品。

對於想快速實現一個產品而言,如果使用傳統開發,又要兼顧前端開發,同時又要花費時間構建後端服務。Supabase能夠讓開發人員可以專注於前端開發,而無需花費大量時間和精力來構建和維護後端基礎設施。

Supbase 產品包括 Postgres 資料庫和身份驗證服務,儲存和無伺服器服務(用於後端邏輯)仍在開發中。它的所有工具大多是免費和開源的。Postgres 資料庫包括與資料庫相關的工具,例如對資料庫修改的實時監控和一個管理介面。

此外,它還提供了可與 Firebase 相媲美的快速 API 和語法。這允許您以一致的方式處理 CRUD 任務,讓您專注於建立而不是重寫重複的 CRUD 程式碼。

Supabase 的功能

  • 資料庫:Supabase 使用 PostgreSQL 作為資料庫,支援 SQL 和 RESTful API 存取。
  • 認證:Supabase 提供了一個完整的認證系統,支援郵箱、手機號、第三方服務等多種登入方式。
  • 實時訂閱:Supabase 允許你通過 WebSocket 實現實時資料同步,無需編寫額外的程式碼。
  • 儲存:Supabase 提供了一個物件儲存服務,可以方便地上傳、下載和管理檔案。
  • 邊緣函數:Supabase 支援在邊緣節點上執行 JavaScript 函數,可以用來處理請求或觸發事件。

工作方式

Supabase 是一個開源工具的組合。我們正在使用企業級的開源產品構建 Firebase 的功能。如果存在相應的工具和社群,並且有 MIT、Apache 2 或同等的開放許可,我們將使用並支援該工具。如果該工具不存在,我們就自己開發並開放原始碼。Supabase 不是 Firebase 的一對一對映。我們的目標是使用開源工具為開發者提供類似 Firebase 的開發者體驗。

當前架構

Supabase 是一個託管平臺。你可以註冊並開始使用 Supabase,而無需安裝任何軟體。你也可以自託管和本地開發。

  • PostgreSQL 是一個物件關係型資料庫系統,經過 30 多年的積極開發,它在可靠性、功能健壯性和效能方面贏得了很好的聲譽。
  • Realtime 是一個 Elixir 伺服器,允許你使用 WebSocket 監聽 PostgreSQL 的插入、更新和刪除。Supabase 監聽 Postgres 的內建複製功能,將複製的位元組流轉換為 JSON,然後通過 WebSocket 廣播 JSON。
  • PostgREST 是一個 Web 伺服器,可以將你的 PostgreSQL 資料庫直接生成 RESTful API
  • Storage 提供了一個 RESTful 介面,用於管理儲存在 S3 中的檔案,使用 Postgres 來管理許可權。
  • postgres-meta 是一個 RESTful API,用於管理你的 Postgres,允許你獲取表、新增角色和執行查詢等。
  • GoTrue 是一個基於 SWT 的 API,用於管理使用者和釋出 SWT 令牌。
  • Kong 是一個雲原生 API 閘道器。

使用者端庫

我們的客戶庫是模組化的。每一個子庫都是一個獨立的實現,用於一個單一的外部系統。這是我們支援現有工具的方式之一。

語言 使用者端 模組-使用者端(已整合在 Supabase 使用者端中)
Supabase PostgREST GoTrue Realtime Storage
官方
JavaScript (TypeScript) supabase-js postgrest-js gotrue-js realtime-js storage-js
社群
C# supabase-csharp postgrest-csharp gotrue-csharp realtime-csharp storage-csharp
Flutter supabase-dart postgrest-dart gotrue-dart realtime-dart storage-dart
Go - postgrest-go - - -
Java - - gotrue-java - -
Kotlin supabase-kt postgrest-kt gotrue-kt realtime-kt storage-kt
Python supabase-py postgrest-py gotrue-py realtime-py -
Ruby supabase-rb postgrest-rb - - -
Rust - postgrest-rs - - -
Swift supabase-swift postgrest-swift gotrue-swift realtime-swift storage-swift

什麼是BaaS

BaaS(Backend as a Service,後端即服務)是一種新型的雲服務,其中開發人員將 Web 或移動開發的幕後元件外包,以便他們可以專注於在隨插即用的基礎上構建和維護前端,並且擺脫編寫伺服器端程式碼的負擔。

BaaS 平臺(用於移動應用程式)提供支援伺服器端任務的軟體,例如身份驗證、資料庫管理、實時更新、儲存、託管和推播警報。

儘管各種後端服務從根本上提供相同的解決方案,但它們使用不同的後端技術。這是許多開發人員在為某個專案選擇最佳服務時的決定性因素。

專案地址:https://github.com/supabase/supabase

歡迎關注我的公眾號