Supabase 是一个开源的 Firebase 替代品。我们正在使用企业级的开源工具构建 Firebase 的功能。
完整的文档,请访问 supabase.io/docs
了解如何贡献,请访问入门
- 社区论坛。适用于:帮助建立和讨论数据库的最佳实践。
- GitHub Issues。适用于:你在使用 Supabase 时遇到的 bug 和错误。
- 邮件支持。适用于:你的数据库或基础设施的问题。
- Discord。适用于:分享你的应用程序以及在社区一起玩起来。
- Alpha:我们正在与一组封闭的客户测试 Supabase
- Public Alpha:任何人都可以在 app.supabase.io上注册。只是务必手下留情,还有一些纠结的地方。
- Public Beta:足够稳定,适合大多数非企业使用场景
- Public:生产就绪
我们目前正处于 Public Beta 阶段。关注这个存储库的 "Releases" 以获得关于重大更新的通知。
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 |
Dart (Flutter) | supabase-dart | postgrest-dart | gotrue-dart | realtime-dart | storage-dart |
Go | - | postgrest-go | - | - | - |
Java | - | - | gotrue-java | - | - |
Kotlin | - | postgrest-kt | gotrue-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 |