一天一个开源项目(第54篇):Supabase - 开源的 Postgres 开发平台,Firebase 替代方案
引言“The Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.”这是「一天一个开源项目」系列的第 54 篇文章。今天介绍的项目是SupabaseGitHub。想用 Firebase 的体验但不想被供应商锁定Supabase是开源的Postgres 开发平台用企业级开源工具实现 Firebase 的典型能力托管 Postgres 数据库、认证与授权、自动生成 REST/GraphQL API、Realtime 订阅、Edge Functions、文件存储、AI 向量工具。可云端托管也可自托管。你将学到什么Supabase 的核心能力与定位技术架构Postgres、PostgREST、GoTrue、Realtime、Storage 等多语言客户端支持与 Firebase 的对比快速开始云端与自托管前置知识对数据库、API、认证有基本了解了解 Postgres 或 SQL 更佳可选项目背景项目简介Supabase是开源的Postgres 开发平台目标是提供类似 Firebase 的开发体验但基于企业级开源组件。若已有 MIT、Apache 2 等开源协议的工具优先采用若没有则自行开发并开源。Supabase 不是 Firebase 的 1:1 映射而是用开源工具实现类似体验。团队团队Supabasesupabase.com理念用开源工具构建 Firebase 式开发体验项目数据License: Apache-2.0官网: supabase.com文档: supabase.com/docs社区: Forum、Discord、GitHub Issues主要功能核心能力能力说明托管 Postgres专用 Postgres 数据库支持扩展如 pgvector认证GoTrueJWT 认证支持登录、注册、会话管理自动 APIPostgREST 提供 REST APIpg_graphql 提供 GraphQL APIRealtime通过 WebSocket 订阅 Postgres 的插入、更新、删除Edge Functions基于 Deno 的 Serverless 函数文件存储S3 兼容存储由 Postgres 管理权限AI 向量pgvector 等向量扩展支持 Embeddings 与检索使用场景Web/Mobile 应用快速搭建后端、数据库、认证、文件存储实时应用聊天、协作、仪表盘等实时数据更新AI 应用向量嵌入、RAG、语义检索Firebase 迁移从 Firebase 迁移到开源、可自托管方案快速开始云端托管# 1. 在 supabase.com 创建项目# 2. 安装客户端npminstallsupabase/supabase-js# 3. 在代码中使用import{createClient}fromsupabase/supabase-jsconst supabasecreateClient(https://your-project.supabase.co,your-anon-key)// 查询数据 const{data}await supabase.from(posts).select(*)// 认证 await supabase.auth.signInWithPassword({email, password})// Realtime 订阅 supabase.channel(posts).on(postgres_changes,{event:*, schema:public, table:posts},(payload)console.log(payload)).subscribe()自托管# 使用 Docker Composegitclone https://github.com/supabase/supabasecdsupabase/dockercp.env.example .envdockercompose up-d技术架构组件作用Postgres主数据库30 年稳定发展RealtimeElixir 服务监听 Postgres 变更通过 WebSocket 推送PostgREST将 Postgres 转为 REST APIGoTrueJWT 认证 APIStorageS3 兼容文件存储权限由 Postgres 控制pg_graphqlPostgres 扩展提供 GraphQL APIpostgres-metaREST API管理 Postgres表、角色、查询等KongAPI 网关客户端支持官方JavaScript/TypeScript、Flutter、Swift、Python社区C#、Go、Java、Kotlin、Ruby、Rust、Godot (GDScript)项目优势对比项SupabaseFirebase自建后端数据库PostgresFirestore / Realtime DB自选开源是否视架构而定自托管支持否是API 生成自动 REST/GraphQL自动需手动Realtime通过 Postgres原生需自建供应商锁定低高无项目详细剖析工作原理Supabase 由多个开源组件组合而成。Postgres 通过内置复制功能输出变更Realtime 监听这些变更转为 JSON通过 WebSocket 推送给已授权客户端。PostgREST 根据 schema 自动生成 REST APIGoTrue 处理认证并签发 JWT。目录结构supabase/ ├── apps/ # Studio、文档等应用 ├── packages/ # 客户端库、工具 ├── docker/ # 自托管 Docker 配置 ├── supabase/ # CLI、迁移等 ├── examples/ # 示例项目 └── ...自托管通过 Docker Compose 可完整自托管所有服务包括 Postgres、Auth、Realtime、Storage、API 等适合本地开发或私有部署。项目地址与资源官方资源GitHub: https://github.com/supabase/supabase官网: supabase.com文档: supabase.com/docs社区: Forum、Discord、GitHub Issues适用人群需要快速搭建后端的 Web/Mobile 开发者希望从 Firebase 迁移到开源、可自托管方案需要 Realtime 的实时应用需要向量嵌入的 AI 应用偏好 Postgres 的团队欢迎来我中的个人主页找到更多有用的知识和有趣的产品
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425810.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!