update Chinese docs to reflect Python and Swift as official clients Co-authored-by: renee <50965960+wurenee@users.noreply.github.com>
210 lines
14 KiB
Markdown
210 lines
14 KiB
Markdown
<p align="center">
|
||
<img src="https://user-images.githubusercontent.com/8291514/213727234-cda046d6-28c6-491a-b284-b86c5cede25d.png#gh-light-mode-only">
|
||
<img src="https://user-images.githubusercontent.com/8291514/213727225-56186826-bee8-43b5-9b15-86e839d89393.png#gh-dark-mode-only">
|
||
</p>
|
||
|
||
# Supabase
|
||
|
||
[Supabase](https://supabase.com) 是一个开源的 Firebase 替代品。我们正在使用企业级的开源工具构建 Firebase 的功能。
|
||
|
||
- [x] Postgres 数据库托管。[文档](https://supabase.com/docs/guides/database)
|
||
- [x] 身份验证和授权。[文档](https://supabase.com/docs/guides/auth)
|
||
- [x] 自动生成的 API。
|
||
- [x] REST。[文档](https://supabase.com/docs/guides/api)
|
||
- [x] GraphQL。[文档](https://supabase.com/docs/guides/graphql)
|
||
- [x] 实时订阅。[文档](https://supabase.com/docs/guides/realtime)
|
||
- [x] 函数。
|
||
- [x] 数据库函数。[文档](https://supabase.com/docs/guides/database/functions)
|
||
- [x] 边缘函数。[文档](https://supabase.com/docs/guides/functions)
|
||
- [x] 文件存储。[文档](https://supabase.com/docs/guides/storage)
|
||
- [x] AI + 向量/Embeddings 工具包. [Docs](https://supabase.com/docs/guides/ai)
|
||
- [x] 仪表盘。
|
||
|
||

|
||
|
||
关注此仓库的 “release” 以获得重大更新的通知。
|
||
|
||
<kbd><img src="https://raw.githubusercontent.com/supabase/supabase/d5f7f413ab356dc1a92075cb3cee4e40a957d5b1/web/static/watch-repo.gif" alt="关注此仓库"/></kbd>
|
||
|
||
## 文档
|
||
|
||
完整的文档,请访问 [supabase.com/docs](https://supabase.com/docs)
|
||
|
||
了解如何贡献,请访问[入门](../DEVELOPERS.md)
|
||
|
||
## 社区与支持
|
||
|
||
- [社区论坛](https://github.com/supabase/supabase/discussions)。适用于:帮助建立和讨论数据库的最佳实践。
|
||
- [GitHub Issues](https://github.com/supabase/supabase/issues)。适用于:你在使用 Supabase 时遇到的 bug 和错误。
|
||
- [邮件支持](https://supabase.com/docs/support#business-support)。适用于:你的数据库或基础设施的问题。
|
||
- [Discord](https://discord.supabase.com)。适用于:分享你的应用程序以及在社区一起玩起来。
|
||
|
||
## 工作方式
|
||
|
||
Supabase 是一个开源工具的组合。我们正在使用企业级的开源产品构建 Firebase 的功能。如果存在相应的工具和社区,并且有 MIT、Apache 2 或同等的开放许可,我们将使用并支持该工具。如果该工具不存在,我们就自己开发并开放源代码。Supabase 不是 Firebase 的一对一映射。我们的目标是使用开源工具为开发者提供类似 Firebase 的开发者体验。
|
||
|
||
**当前架构**
|
||
|
||
Supabase 是一个[托管平台](https://supabase.com/dashboard)。你可以注册并开始使用 Supabase,而无需安装任何软件。
|
||
你也可以[自托管](https://supabase.com/docs/guides/hosting/overview)和[本地开发](https://supabase.com/docs/guides/local-development)。
|
||
|
||

|
||
|
||
- [PostgreSQL](https://www.postgresql.org/) 是一个对象关系型数据库系统,经过 30 多年的积极开发,它在可靠性、功能健壮性和性能方面赢得了很好的声誉。
|
||
- [Realtime](https://github.com/supabase/realtime) 是一个 Elixir 服务器,允许你使用 WebSocket 监听 PostgreSQL 的插入、更新和删除。Supabase 监听 Postgres 的内置复制功能,将复制的字节流转换为 JSON,然后通过 WebSocket 广播 JSON。
|
||
- [PostgREST](http://postgrest.org/) 是一个 Web 服务器,可以将你的 PostgreSQL 数据库直接生成 RESTful API
|
||
- [GoTrue](https://github.com/supabase/gotrue) 是一个基于 SWT 的 API,用于管理用户和发布 SWT 令牌。
|
||
- [Storage](https://github.com/supabase/storage-api) 提供了一个 RESTful 接口,用于管理存储在 S3 中的文件,使用 Postgres 来管理权限。
|
||
- [pg_graphql](http://github.com/supabase/pg_graphql/) 公开GraphQL API的PostgreSQL扩展
|
||
- [postgres-meta](https://github.com/supabase/postgres-meta) 是一个 RESTful API,用于管理你的 Postgres,允许你获取表、添加角色和运行查询等。
|
||
- [Kong](https://github.com/Kong/kong) 是一个云原生 API 网关。
|
||
|
||
#### 客户端库
|
||
|
||
我们的客户库是模块化的。每一个子库都是一个独立的实现,用于一个单一的外部系统。这是我们支持现有工具的方式之一。
|
||
|
||
<table style="table-layout:fixed; white-space: nowrap;">
|
||
<tr>
|
||
<th>语言</th>
|
||
<th>客户端</th>
|
||
<th colspan="5">模块-客户端(已集成在 Supabase 客户端中)</th>
|
||
</tr>
|
||
<!-- notranslate -->
|
||
<tr>
|
||
<th></th>
|
||
<th>Supabase</th>
|
||
<th><a href="https://github.com/postgrest/postgrest" target="_blank" rel="noopener noreferrer">PostgREST</a></th>
|
||
<th><a href="https://github.com/supabase/gotrue" target="_blank" rel="noopener noreferrer">GoTrue</a></th>
|
||
<th><a href="https://github.com/supabase/realtime" target="_blank" rel="noopener noreferrer">Realtime</a></th>
|
||
<th><a href="https://github.com/supabase/storage-api" target="_blank" rel="noopener noreferrer">Storage</a></th>
|
||
<th>Functions</th>
|
||
</tr>
|
||
<!-- TEMPLATE FOR NEW ROW -->
|
||
<!-- START ROW
|
||
<tr>
|
||
<td>lang</td>
|
||
<td><a href="https://github.com/supabase-community/supabase-lang" target="_blank" rel="noopener noreferrer">supabase-lang</a></td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-lang" target="_blank" rel="noopener noreferrer">postgrest-lang</a></td>
|
||
<td><a href="https://github.com/supabase-community/gotrue-lang" target="_blank" rel="noopener noreferrer">gotrue-lang</a></td>
|
||
<td><a href="https://github.com/supabase-community/realtime-lang" target="_blank" rel="noopener noreferrer">realtime-lang</a></td>
|
||
<td><a href="https://github.com/supabase-community/storage-lang" target="_blank" rel="noopener noreferrer">storage-lang</a></td>
|
||
</tr>
|
||
END ROW -->
|
||
<!-- /notranslate -->
|
||
<th colspan="7">⚡️ 官方 ⚡️</th>
|
||
<!-- notranslate -->
|
||
<tr>
|
||
<td>JavaScript (TypeScript)</td>
|
||
<td><a href="https://github.com/supabase/supabase-js" target="_blank" rel="noopener noreferrer">supabase-js</a></td>
|
||
<td><a href="https://github.com/supabase/postgrest-js" target="_blank" rel="noopener noreferrer">postgrest-js</a></td>
|
||
<td><a href="https://github.com/supabase/gotrue-js" target="_blank" rel="noopener noreferrer">gotrue-js</a></td>
|
||
<td><a href="https://github.com/supabase/realtime-js" target="_blank" rel="noopener noreferrer">realtime-js</a></td>
|
||
<td><a href="https://github.com/supabase/storage-js" target="_blank" rel="noopener noreferrer">storage-js</a></td>
|
||
<td><a href="https://github.com/supabase/functions-js" target="_blank" rel="noopener noreferrer">functions-js</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Flutter</td>
|
||
<td><a href="https://github.com/supabase/supabase-flutter" target="_blank" rel="noopener noreferrer">supabase-flutter</a></td>
|
||
<td><a href="https://github.com/supabase/postgrest-dart" target="_blank" rel="noopener noreferrer">postgrest-dart</a></td>
|
||
<td><a href="https://github.com/supabase/gotrue-dart" target="_blank" rel="noopener noreferrer">gotrue-dart</a></td>
|
||
<td><a href="https://github.com/supabase/realtime-dart" target="_blank" rel="noopener noreferrer">realtime-dart</a></td>
|
||
<td><a href="https://github.com/supabase/storage-dart" target="_blank" rel="noopener noreferrer">storage-dart</a></td>
|
||
<td><a href="https://github.com/supabase/functions-dart" target="_blank" rel="noopener noreferrer">functions-dart</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Swift</td>
|
||
<td><a href="https://github.com/supabase-community/supabase-swift" target="_blank" rel="noopener noreferrer">supabase-swift</a></td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-swift" target="_blank" rel="noopener noreferrer">postgrest-swift</a></td>
|
||
<td><a href="https://github.com/supabase-community/gotrue-swift" target="_blank" rel="noopener noreferrer">gotrue-swift</a></td>
|
||
<td><a href="https://github.com/supabase-community/realtime-swift" target="_blank" rel="noopener noreferrer">realtime-swift</a></td>
|
||
<td><a href="https://github.com/supabase-community/storage-swift" target="_blank" rel="noopener noreferrer">storage-swift</a></td>
|
||
<td><a href="https://github.com/supabase-community/functions-swift" target="_blank" rel="noopener noreferrer">functions-swift</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Python</td>
|
||
<td><a href="https://github.com/supabase-community/supabase-py" target="_blank" rel="noopener noreferrer">supabase-py</a></td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-py" target="_blank" rel="noopener noreferrer">postgrest-py</a></td>
|
||
<td><a href="https://github.com/supabase-community/gotrue-py" target="_blank" rel="noopener noreferrer">gotrue-py</a></td>
|
||
<td><a href="https://github.com/supabase-community/realtime-py" target="_blank" rel="noopener noreferrer">realtime-py</a></td>
|
||
<td><a href="https://github.com/supabase-community/storage-py" target="_blank" rel="noopener noreferrer">storage-py</a></td>
|
||
<td><a href="https://github.com/supabase-community/functions-py" target="_blank" rel="noopener noreferrer">functions-py</a></td>
|
||
</tr>
|
||
<!-- /notranslate -->
|
||
<th colspan="7">💚 社区 💚</th>
|
||
<!-- notranslate -->
|
||
<tr>
|
||
<td>C#</td>
|
||
<td><a href="https://github.com/supabase-community/supabase-csharp" target="_blank" rel="noopener noreferrer">supabase-csharp</a></td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-csharp" target="_blank" rel="noopener noreferrer">postgrest-csharp</a></td>
|
||
<td><a href="https://github.com/supabase-community/gotrue-csharp" target="_blank" rel="noopener noreferrer">gotrue-csharp</a></td>
|
||
<td><a href="https://github.com/supabase-community/realtime-csharp" target="_blank" rel="noopener noreferrer">realtime-csharp</a></td>
|
||
<td><a href="https://github.com/supabase-community/storage-csharp" target="_blank" rel="noopener noreferrer">storage-csharp</a></td>
|
||
<td><a href="https://github.com/supabase-community/functions-csharp" target="_blank" rel="noopener noreferrer">functions-csharp</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Go</td>
|
||
<td>-</td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-go" target="_blank" rel="noopener noreferrer">postgrest-go</a></td>
|
||
<td><a href="https://github.com/supabase-community/gotrue-go" target="_blank" rel="noopener noreferrer">gotrue-go</a></td>
|
||
<td>-</td>
|
||
<td><a href="https://github.com/supabase-community/storage-go" target="_blank" rel="noopener noreferrer">storage-go</a></td>
|
||
<td><a href="https://github.com/supabase-community/functions-go" target="_blank" rel="noopener noreferrer">functions-go</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Java</td>
|
||
<td>-</td>
|
||
<td>-</td>
|
||
<td><a href="https://github.com/supabase-community/gotrue-java" target="_blank" rel="noopener noreferrer">gotrue-java</a></td>
|
||
<td>-</td>
|
||
<td><a href="https://github.com/supabase-community/storage-java" target="_blank" rel="noopener noreferrer">storage-java</a></td>
|
||
<td>-</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Kotlin</td>
|
||
<td><a href="https://github.com/supabase-community/supabase-kt" target="_blank" rel="noopener noreferrer">supabase-kt</a></td>
|
||
<td><a href="https://github.com/supabase-community/supabase-kt/tree/master/Postgrest" target="_blank" rel="noopener noreferrer">postgrest-kt</a></td>
|
||
<td><a href="https://github.com/supabase-community/supabase-kt/tree/master/GoTrue" target="_blank" rel="noopener noreferrer">gotrue-kt</a></td>
|
||
<td><a href="https://github.com/supabase-community/supabase-kt/tree/master/Realtime" target="_blank" rel="noopener noreferrer">realtime-kt</a></td>
|
||
<td><a href="https://github.com/supabase-community/supabase-kt/tree/master/Storage" target="_blank" rel="noopener noreferrer">storage-kt</a></td>
|
||
<td><a href="https://github.com/supabase-community/supabase-kt/tree/master/Functions" target="_blank" rel="noopener noreferrer">functions-kt</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Ruby</td>
|
||
<td><a href="https://github.com/supabase-community/supabase-rb" target="_blank" rel="noopener noreferrer">supabase-rb</a></td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-rb" target="_blank" rel="noopener noreferrer">postgrest-rb</a></td>
|
||
<td>-</td>
|
||
<td>-</td>
|
||
<td>-</td>
|
||
<td>-</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Rust</td>
|
||
<td>-</td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-rs" target="_blank" rel="noopener noreferrer">postgrest-rs</a></td>
|
||
<td>-</td>
|
||
<td>-</td>
|
||
<td>-</td>
|
||
<td>-</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Godot Engine (GDScript)</td>
|
||
<td><a href="https://github.com/supabase-community/godot-engine.supabase" target="_blank" rel="noopener noreferrer">supabase-gdscript</a></td>
|
||
<td><a href="https://github.com/supabase-community/postgrest-gdscript" target="_blank" rel="noopener noreferrer">postgrest-gdscript</a></td>
|
||
<td><a href="https://github.com/supabase-community/gotrue-gdscript" target="_blank" rel="noopener noreferrer">gotrue-gdscript</a></td>
|
||
<td><a href="https://github.com/supabase-community/realtime-gdscript" target="_blank" rel="noopener noreferrer">realtime-gdscript</a></td>
|
||
<td><a href="https://github.com/supabase-community/storage-gdscript" target="_blank" rel="noopener noreferrer">storage-gdscript</a></td>
|
||
<td><a href="https://github.com/supabase-community/functions-gdscript" target="_blank" rel="noopener noreferrer">functions-gdscript</a></td>
|
||
</tr>
|
||
<!-- /notranslate -->
|
||
</table>
|
||
|
||
## 翻译
|
||
|
||
- [翻译列表](/i18n/languages.md)
|
||
|
||
---
|
||
|
||
## 赞助
|
||
|
||
[](https://github.com/sponsors/supabase)
|