supabase / supabase

Supabase Supabase is the Postgres development platform. We’re building the features of Firebase using enterprise-grade open source tools. Hosted Postgres Database. Docs Authentication and Authorization. Docs Auto-generated APIs. REST. Docs GraphQL. Docs Realtime subscriptions. Docs Functions. Database Functions. Docs Edge Functions Docs File Storage. Docs AI + Vector/Embeddings Toolkit. Docs Dashboard Watch “releases” of this repo to get notified of major updates. Documentation For full documentation, visit supabase.com/docs To see how to Contribute, visit Getting Started Community & Support Community Forum. Best for: help with building, discussion about database best practices. GitHub Issues. Best for: bugs and errors you encounter using Supabase. Email Support. Best for: problems with your database or infrastructure. Discord. Best for: sharing your applications and hanging out with the community.

Supabase 是一个 Postgres 开发平台。我们正在使用企业级的开源工具构建 Firebase 的各项功能。包括托管 Postgres 数据库、文档、身份验证与授权、自动生成的 REST 和 GraphQL API、实时订阅、数据库函数、边缘函数、文件存储以及 AI + 向量/嵌入工具包。请关注此仓库的“发布 (releases)”以获取重大更新通知。如需完整文档,请访问 supabase.com/docs。如需了解如何贡献,请访问“入门 (Getting Started)”。社区与支持包括:社区论坛(最适合构建帮助和数据库最佳实践讨论)、GitHub Issues(最适合报告使用 Supabase 时遇到的错误)、电子邮件支持(最适合数据库或基础设施问题)以及 Discord(最适合分享应用和社区交流)。

How it works Supabase is a combination of open source tools. We’re building the features of Firebase using enterprise-grade, open source products. If the tools and communities exist, with an MIT, Apache 2, or equivalent open license, we will use and support that tool. If the tool doesn’t exist, we build and open source it ourselves. Supabase is not a 1-to-1 mapping of Firebase. Our aim is to give developers a Firebase-like developer experience using open source tools.

其工作原理是:Supabase 是一系列开源工具的组合。我们使用企业级的开源产品来构建 Firebase 的功能。如果现有的工具和社区采用 MIT、Apache 2 或同等开放许可,我们就会使用并支持该工具。如果该工具不存在,我们会自行构建并将其开源。Supabase 并非 Firebase 的 1 对 1 映射。我们的目标是利用开源工具为开发者提供类似 Firebase 的开发体验。

Architecture Supabase is a hosted platform. You can sign up and start using Supabase without installing anything. You can also self-host and develop locally. Postgres is an object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. Realtime is an Elixir server that allows you to listen to PostgreSQL inserts, updates, and deletes using websockets. Realtime polls Postgres’ built-in replication functionality for database changes, converts changes to JSON, then broadcasts the JSON over websockets to authorized clients. PostgREST is a web server that turns your PostgreSQL database directly into a RESTful API. GoTrue is a JWT-based authentication API that simplifies user sign-ups, logins, and session management in your applications. Storage a RESTful API for managing files in S3, with Postgres handling permissions. pg_graphql a PostgreSQL extension that exposes a GraphQL API. postgres-meta is a RESTful API for managing your Postgres, allowing you to fetch tables, add roles, and run queries, etc. Envoy is a cloud-native, high-performance edge and service proxy.

架构方面,Supabase 是一个托管平台。您可以注册并开始使用 Supabase,无需安装任何东西。您也可以进行自托管并在本地开发。Postgres 是一个拥有超过 30 年活跃开发历史的对象关系数据库系统,以其可靠性、功能稳健性和高性能而闻名。Realtime 是一个 Elixir 服务器,允许您使用 websockets 监听 PostgreSQL 的插入、更新和删除操作。Realtime 通过轮询 Postgres 内置的复制功能来获取数据库变更,将变更转换为 JSON,然后通过 websockets 将 JSON 广播给授权客户端。PostgREST 是一个将 PostgreSQL 数据库直接转换为 RESTful API 的 Web 服务器。GoTrue 是一个基于 JWT 的身份验证 API,可简化应用中的用户注册、登录和会话管理。Storage 是一个用于管理 S3 中文件的 RESTful API,由 Postgres 处理权限。pg_graphql 是一个提供 GraphQL API 的 PostgreSQL 扩展。postgres-meta 是一个用于管理 Postgres 的 RESTful API,允许您获取表、添加角色和运行查询等。Envoy 是一个云原生、高性能的边缘和服务代理。

Client libraries Our approach for client libraries is modular. Each sub-library is a standalone implementation for a single external system. This is one of the ways we support existing tools. Language Client Feature-Clients (bundled in Supabase client) Supabase PostgREST GoTrue Realtime Storage Functions ⚡️ Official ⚡️ JavaScript (TypeScript) supabase-js postgrest-js auth-js realtime-js storage-js functions-js Flutter supabase-flutter postgrest supabase_auth supabase_realtime supabase_storage supabase_functions Swift supabase-swift postgrest-swift auth-swift realtime-swift storage-swift functions-swift Python supabase-py postgrest-py gotrue-py realtime-py storage-py functions-py 💚 Community 💚 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 auth-kt realtime-kt storage-kt functions-kt Ruby supabase-rb postgrest-rb - - - - Rust - postgrest-rs - - - - Godot Engine (GDScript) supabase-gdscript - - - - -

客户端库方面,我们的方法是模块化的。每个子库都是针对单个外部系统的独立实现。这是我们支持现有工具的方式之一。语言客户端及功能客户端(打包在 Supabase 客户端中)涵盖了 JavaScript (TypeScript)、Flutter、Swift、Python 等官方支持,以及 C#、Go、Java、Kotlin、Ruby、Rust 和 Godot Engine (GDScript) 等社区支持。