PROD欧洲主权BaaS平台打开仪表板 →

比较 · 9 最小读取值

Aurabase 与 Convex:本机 SQL 还是反应式后端?

Affane Daylami · Fondateur · 2026年7月21日

返回博客

Convex 采取了与大多数 BaaS 相反的赌注:没有 Postgres、没有 SQL、专有的 TypeScript 查询构建器和默认的自动响应能力。 Aurabase 仍然采用标准 PostgreSQL 16,具有本机 SQL 和行级安全性。然而,这两个引擎有一个很少被强调的共同点:它们都是用 Rust 编写的。这是每个人都获胜的地方,没有恶意。

该英文文本是根据法文原文自动生成的,尚未经过审查。
该页面已自动翻译。英文版具有权威性。

要点

Convex 将 SQL 替换为由 TypeScript 驱动的专有文档关系模型,一旦查询发生变化,就会自动实时同步,无需编写订阅代码。 Aurabase 保留 PostgreSQL 16 标准:SQL、RLS、pg_dump/pg_restore以及 Convex 专有模型不允许的可移植性。两个引擎都是用 Rust 编写的。自 2026 年 2 月起,Convex 已提供欧盟地区(爱尔兰)服务,但仍是一家美国公司; Aurabase SAS 是一家法国公司,在德国和芬兰设有办事处。选择取决于您的优先级:TypeScript 的交钥匙响应能力,或具有记录的欧盟主权的可移植 SQL。

#
数据模型

原生 Postgres SQL 与专有 TypeScript 查询生成器

Aurabase 基于 PostgreSQL 16 标准:SQL、经典迁移、RLS 策略。凸则采取相反的路径。其官方文档明确说明了这一选择:“无需进行任何设置,也无需编写任何 SQL。只需使用 JavaScript 来表达应用程序的需求”(docs.convex.dev/database,2026 年 8 月 24 日访问)。凸表存储由可选 TypeScript 模式键入的文档,该模式首先创建 insert,无需编写 DDL。

这是典型的凸查询的样子,在模式中声明了索引:

convex/tasks.tstypescript
// 凸查询——TypeScript,而不是 SQL
import { query } from './_generated/server'
import { v } from 'convex/values'

export const getOpenTasks = query({
  args: {},
  handler: async (ctx) => {
    return await ctx.db
      .query('tasks')
      .withIndex('by_completed', q => q.eq('completed', false))
      .collect()
  },
})

这两种模型都不是绝对优越的。 Convex 的查询生成器通过构造消除了一整类 SQL 注入错误。它还将您锁定在它自己的查询语言中。没有标准的 BI 工具,没有现有的 Postgres ORM,没有像 pgvector 或 pg_graphql 这样的 SQL 扩展,而无需完全重写数据层。

#
反应能力

针对每个通道的 CDC 选择自动同步

在 Convex,默认情况下任何查询都是响应式的。客户端打开与部署的 WebSocket 连接,引擎保留每个请求读取的所有行(其“读取集”)。一旦突变影响该读取集,该函数就会在服务器端重播。更新后的结果被推送到客户端,无需编写订阅代码(stack.convex.dev/how-convex-works,2026 年 8 月 24 日访问)。

Aurabase 实时以相反的方式工作,即选择加入。 NATS JetStream 广播 PostgreSQL 更改流 (CDC);您通过 channel().on('postgres_changes', …)显式订阅频道,并可以按列进行过滤。这是为实时视图编写的更多代码,而是由 Postgres 逻辑复制支持的标准协议,而不是与特定查询生成器相结合的专有机制。

#
发动机和许可证

双方都生锈,MIT 与 FSL

我们不希望在这里找到一个共同点:两个引擎都是用 Rust 编写的。 Convex开源存储库(get-convex/convex-backend)主要由Rust crate组成。 TypeScript 仅用于开发人员函数的执行环境,通过 V8 引擎(stack.convex.dev/how-convex-works,2026 年 8 月 24 日访问)。与 Supabase — Elixir/Go/TypeScript/Node 堆栈相比 — Rust 核心仍然是 Aurabase 真正的差异化因素。与 Convex 相比,不:双方都下了这个赌注,每个人都为了构建一个可靠的事务引擎,而不会出现不可预测的垃圾收集暂停。

区别在于许可证。 Convex 引擎代码 (get-convex/convex-backend) 在 FSL-1.1-Apache-2.0下发布,这是一个公平的源许可证。它授权除创建与 Convex Cloud 竞争的产品之外的任何用途。每个版本在发布两年后都会切换到纯 Apache 2.0 — 直接在存储库中的 LICENSE.md 文件中验证条款(github.com/get-convex/convex-backend,2026 年 8 月 24 日访问)。 Rust 工作区和 Aurabase JavaScript SDK 在 MIT 许可证下发布,开源,无延迟或使用限制。

双方都可以自托管,但有细微差别

Convex 提供用于自托管的官方 Docker 镜像 (ghcr.io/get-convex/convex-backend)。它默认存储在 SQLite 上,但可以在配置中依赖 Postgres 或 MySQL — 无需将 SQL 暴露给应用程序。 Aurabase 在其存储库中提供了官方 Helm 图表和本地 k3d 工作台 (./start.sh),没有许可证限制,但托管云仍然是推荐的主要生产途径。

#
人工智能

两侧的 RAG,特定于 Aurabase 的 NL2SQL

人工智能中也没有排除凸函数。其本机向量搜索可从 actions访问,并在模式中声明向量索引。凭借其 @convex-dev/agent 和 rag.search()框架,它形成了一种 RAG 功能,理论上可与 Aurabase 的本机 RAG 相媲美(docs.convex.dev/search/vector-search,2026 年 8 月 24 日访问)。

因此,真正的区别不是“RAG 与无 RAG”。 Aurabase 还集成了 NL2SQL 引擎 - 将自然语言问题转换为 SQL 查询,在执行前进行验证和限制。 Convex 在结构上无法提供等价物:如果没有 SQL 进行翻译,就不会生成任何内容。这是上述架构选择的直接结果,而不是产品延迟。

#
主权

Convex 的欧盟地区,背后是一家美国公司

除了其默认的美国东部区域(docs.convex.dev/development/regions 和 news.convex.dev,于 2026 年 8 月 24 日访问)之外,Convex 还提供自 2026 年 2 月 6 日起部署的 EU West (Ireland)区域。一个值得认可的真正选择。但 Convex Inc. 仍然是美国法律下的一家公司。其创始人兼首席执行官杰米·特纳 (Jamie Turner) 表示,他居住在旧金山(news.convex.dev,在 Insight Partners 领投的 B 轮融资中筹集了 5700 万美元,2026 年 8 月 4 日)。选择爱尔兰区域不会改变托管您数据的公司的管辖范围。

这与 Supabase 记录的机制完全相同。只要母公司仍然是美国公司,欧洲地区接受管理小组的审查并不足以退出《云法案》的法律制度。 Aurabase SAS 是一家根据法国法律注册成立的公司,在德国(纽伦堡、法尔肯斯坦)和芬兰(赫尔辛基)运营经过验证的生产基础设施。

深入挖掘:为什么云法案会改变您对 BaaS 的选择

#
编辑立场

在基准上,共同克制——在两个不同的方向

Convex 已公开反对营销基准竞赛。他的帖子标题并不细致:“我不关心你的数据库基准(你也不应该)”(stack.convex.dev/on-competitive-benchmarks,2026 年 8 月 24 日访问)。这是一种假设的姿势选择,而不是有针对性的攻击——该帖子没有点名任何特定的竞争对手。

Aurabase 的立场基于相同的观察,但采取相反的方向:发布可重复且过时的基准方法,而不是放弃发布数据。这仍然是一项正在进行的工作——本文中不会强调任何性能数据,除非它们附有完整的方法。

#
生态系统

端到端 TypeScript 与多语言 SDK

Convex 做出了一个激进的选择:使用单一语言,从模式到服务器函数再到 React 客户端,具有端到端类型,无需手动生成。对于已经 100% 使用 TypeScript 的团队来说,这是真正的生产力提升。

Aurabase JavaScript SDK 以 10 个标记为 @aurabase/*的 npm 包分发,全部已发布且可安装。 Python、Dart 和 Rust SDK 也存在于存储库中。这三个工具尚未在各自的注册表(PyPI、pub.dev、crates.io)上发布:它们目前只能依赖于 Git 存储库进行安装。纸面上的多语言覆盖范围更广,在完全声称之前需要填补真正的执行差距。

#
便携性

标准 pg_dump 与专有模型

Aurabase 基于 PostgreSQL 16 标准和 PostgREST 兼容 API。架构和数据导出是使用经典的 pg_dump/pg_restore 完成的 — 导出到 Aurabase 或任何其他 Postgres。

Convex 不依赖于 SQL:没有与导出为标准关系格式直接等效的方法。将 Convex 应用程序迁移到 SQL 后端涉及将架构重新建模为关系表并重写数据访问层,而不仅仅是转换导出文件。

#
编辑诚实

当凸仍然是正确的选择时

如果您的团队已经 100% 使用 TypeScript,构建响应式 React 应用程序,并且不严重依赖 SQL 或 Postgres 扩展,那么 Convex 具有真正的产品优势。两个具体的优点:无需配置的自动响应能力,以及减少整个前端/后端集成错误的端到端类型。

当 SQL、RLS Postgres、数据可移植性或法国母公司位于德国/芬兰的托管区域成为决策标准时,就会出现妥协。这就是 Aurabase 打造其差异化优势的地方。

#
概述

这两个平台有什么区别

数据模型PostgreSQL 16 标准、SQL、本机 RLS专有文档关系型、TypeScript 查询构建器,无 SQL
发动机Rust(统一工作区,12 项服务)Rust(引擎)+V8(运行 TS 功能)
反应能力NATS JetStream CDC,每个频道选择订阅每个请求自动订阅(WebSocket + 读取集)
许可证麻省理工学院,开源刻不容缓FSL-1.1-Apache-2.0(每次发布后 2 年后纯 Apache)
原生人工智能NL2SQL + RAG(pgvector、HNSW 搜索)RAG + 向量搜索(动作),不可能有 NL2SQL
住宿德国+芬兰、法国公司(巴黎)爱尔兰地区自2026年起,美国公司
便携性pg_dump/pg_restore 标准,PostgREST 兼容无标准 SQL 导出,专有模型

想要针对开源和自托管进行比较吗?请参阅 Aurabase 与 Appwrite。有关 Postgres 基准比较和架构,请参阅 Aurabase 与 Supabase。

#
常见问题解答

常见问题解答

Convex 是开源的吗?+
Convex 引擎是根据 FSL-1.1-Apache-2.0 许可证(“公平来源”许可证)发布的。它授权除了创建与 Convex Cloud 竞争的产品之外的任何用途,并且每个版本在发布两年后切换到 Apache 2.0 pure。 Aurabase Rust 工作区和 JavaScript SDK 在 MIT 许可证下发布,立即开源。
Convex 是否提供欧洲托管区域?+
是:除了默认的美国东部区域外,Convex 还提供自 2026 年 2 月起部署的欧盟西部(爱尔兰)区域。然而,Convex Inc. 仍然是一家美国公司。其创始人兼首席执行官自称总部位于旧金山,这并不能消除云法案的法律风险,无论选择何种存储区域。
我们可以将 Convex 应用程序迁移到 Aurabase 吗?+
不是通过简单的导出/导入。 Convex 不公开 SQL 并将数据存储在专有的文档关系模型中。迁移到 Aurabase (PostgreSQL 16) 涉及将架构重新建模为关系表并重写数据访问层。 Supabase → Aurabase 迁移指南详细介绍了已经相关项目的可迁移机制——即使 Convex 不是 Postgres,这也是一个有用的起点。

准备好部署了吗?

五分钟内完成您的后端。

无需信用卡 · 500 MB 免费 · 50,000 MAU