开源BaaS平台Supabase介绍

发布时间 2023-07-17 14:09:36作者: 赵榕

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

欢迎关注我的公众号

CodeOps