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

欢迎关注我的公众号

开源BaaS平台Supabase介绍的更多相关文章

  1. 开源任务管理平台TaskManager介绍

    很早之前准备写Quartz系列文章,现在终于能够实现了.从本篇开始将带你实现一款自己的任务管理平台.在工作中你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一 ...

  2. 开源任务管理平台TaskManagerV2.0介绍及升级说明

    上一篇开源任务管理平台TaskManager介绍发布后,有网友联系我看看能不能做个后台管理界面,方便管理系统中所有的任务.由于时间和技术问题1.0版本的时候,新增了一个3分钟读取配置文件动态修改任务的 ...

  3. Android_进化史和平台架构介绍

    一.Android平台发展史  2008年9月,谷歌正式发布了Android 1.0系统,全球第一台Android设备HTC (G1)  2009年4月,谷歌正式推出了Android 1.5      ...

  4. [转]强悍的跨平台开源多媒体中心XBMC介绍

    [转]强悍的跨平台开源多媒体中心XBMC介绍 http://www.cnblogs.com/mythou/p/3220898.html 最近都在了解Android下的音视频,因为最近需要做一个多媒体中 ...

  5. Quartz.net 的开源任务管理平台

    Quartz.net 的开源任务管理平台 前面总结了很多,关于Quartz.net 的文章,介绍了如何使用Quartz.net.不清楚的朋友,可以看我之前的系列文章,http://www.cnblog ...

  6. 性能测试开源小工具——http_load介绍

    淘测试 性能测试开源小工具——http_load介绍 meizhu 发表于:2009-07-02 浏览:3552次 评论:1次 所属分类: 性能测试 性能测试开源小工具——http_load介绍 ht ...

  7. 强悍的跨平台开源多媒体中心XBMC介绍

    强悍的跨平台开源多媒体中心XBMC介绍 最近都在了解Android下的音视频,因为最近需要做一个多媒体中心的APP,其中了解了一个开源项目XMBC,一个十分强大的开源多媒体中心,而且可以应用在多个平台 ...

  8. 开源视频平台:Kaltura

    Kaltura是一个很优秀的开源视频平台.提供了视频的管理系统,视频的在线编辑系统等等一整套完整的系统,功能甚是强大. Kaltura不同于其他诸如Brightcove,Ooyala这样的网络视频平台 ...

  9. 【SPMF开源数据挖掘平台入门】MaxSP算法使用说明

    前段时间,由于项目中用到了序列挖掘的算法,师兄推荐我用用SPMF.在此做个记录. 首先简单介绍一下SPMF: SPMF是一个采用Java开发的开源数据挖掘平台. 它提供了51种数据挖掘算法实现,用于: ...

  10. 企业级容器管理平台 Rancher 介绍入门及如何备份数据

    企业级容器管理平台 Rancher 介绍入门及如何备份数据 是什么 Rancher 是一个为 DevOps 团队提供的完整的 Kubernetes 与容器管理解决方案的开源的企业级容器管理平台.它解决 ...

随机推荐

  1. GitLab 配置优化

    代码库最近换了,使用了 GitLab.这两天观察了下服务器的使用情况,发现 GitLab 很吃内存.直接占用了 30 多个G的内存. 一.发现问题 使用 top 命令查看内存时,发现前几十个都是同一个 ...

  2. 【LeetCode动态规划#11】打家劫舍系列题(涉及环结构和树形DP的讨论)

    打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻 ...

  3. 25-tree shaking(树摇)

    const { resolve } = require('path'); const MiniCssExtractPlugin = require('mini-css-extract-plugin') ...

  4. 【Qt6】QWindow类可以做什么

    原来的水文标题是"用 VS Code 搞 Qt6",想想还是直接改为"Qt6",反正这个用不用 VS Code 也能搞.虽然我知道大伙伴们都很讨厌 CMake, ...

  5. vue3的setup语法糖

    https://blog.csdn.net/weixin_44922480/article/details/127337914 https://blog.csdn.net/m0_63108819/ar ...

  6. JS 打开本地应用软件

    我们有遇到可以直接打开QQ的跳转链接,也有遇到过直接启动office打开文档. 具体是如何操作的呢? 添加注册表项 首先需要在注册表中添加应用软件的启动地址,操作方式如下 在HKEY_CLASSES_ ...

  7. 2022-09-17:一个字符串s,表示仓库的墙 与 货物,其中‘|‘表示墙,‘*‘表示货物。 给定一个起始下标start和一个终止下标end, 找出子串中 被墙包裹的货物 数量。 比如: s = “

    2022-09-17:一个字符串s,表示仓库的墙 与 货物,其中'|'表示墙,''表示货物. 给定一个起始下标start和一个终止下标end, 找出子串中 被墙包裹的货物 数量. 比如: s = &q ...

  8. 认识CPU底层原理(1)——MOSFET

    本文为B站UP主硬件茶谈制作的系列科普<[硬件科普]带你认识CPU>系列的学习笔记,仅作个人学习记录使用,如有侵权,请联系博主删除 近年来,由于国内外各种因素影响,半导体行业逐渐被推向风口 ...

  9. springboot 分析源码欢迎页和图标-> thymeleaf模板引擎常用语法->扩展

    欢迎页: icon: 注意点:  thymeleaf模板引擎 1.使用thymeleaf模板引擎前要导入对应依赖包 2.阅读源码: 根据源码说明我们可以将html文件放置在templates目录下,然 ...

  10. 安装vue后 vue -V查不到版本号 添加环境变量没反应

    萌新一枚,今天听老大说后续有项目要用vue,于是找教程自己先看看, 验证vue是否安装成功时,提示 'vue' 不是内部命令,也不是可运行的程序 有说把vue路径添加环境变量的,试了一下,不行(后来看 ...