Convex 开源其响应式数据库:实时应用开发的新范式

GitHub May 2026
⭐ 11715📈 +59
来源:GitHub归档:May 2026
Convex 将其整个后端平台开源,包括响应式数据库、无服务器函数和实时订阅引擎。此举旨在通过提供一个统一的替代方案,取代拼凑独立数据库、API 和 WebSocket 服务的传统做法,从而让实时应用开发走向大众化。

Convex,这家以其同名的响应式后端平台而闻名的公司,已在 GitHub 上以 Apache 2.0 许可证将其核心后端代码作为开源项目发布。该仓库 get-convex/convex-backend 已获得超过 11,700 颗星,并且每天以惊人的速度增长。这不仅仅是一个数据库;它是一个全栈后端,融合了事务性、响应式数据库、服务端函数、自动实时查询以及内置状态管理。其核心创新在于“响应式”数据模型:当数据库中的数据发生变化时,Convex 会自动计算哪些客户端查询受到影响,并通过持久的 WebSocket 连接仅将最小的增量推送给这些客户端。这消除了开发者手动实现轮询、缓存失效等需求。

技术深度解析

Convex 的核心是一个紧密集成的系统,包含三个层次:一个事务性数据库(基于 FoundationDB 构建)、一个用于服务端函数的确定性 JavaScript 运行时,以及一个响应式查询引擎。该数据库是一个多模型存储,支持文档、关系和全文搜索,但真正的魔力在于其响应式层。

响应式查询引擎: 当客户端订阅一个查询时,Convex 不仅仅返回结果;它会记录该查询的依赖关系图。当任何数据变更发生时(通过一个 mutation 函数),引擎只会重新评估受影响的查询。它使用一种称为“增量计算”的技术——类似于 React 的虚拟 DOM 如何 diff 变化,但这是在数据库层面进行的。引擎计算出最小的变更集,并通过持久的 WebSocket 连接将其推送给客户端。这与 Firebase 的方法(推送整个文档快照)或 Supabase 的方法(依赖 PostgreSQL 的 LISTEN/NOTIFY,但需要在客户端进行手动过滤)有着根本的不同。

确定性 JavaScript 运行时: Convex 的服务端函数(queries、mutations 和 actions)在一个定制的、基于 V8 的运行时中运行,该运行时强制执行确定性。这对于响应式系统至关重要:如果一个查询函数对于相同的数据库状态可能返回不同的结果(例如,由于随机数或外部 API 调用),系统将无法可靠地计算增量。Mutations 是事务性的——它们在隔离环境中运行并原子性地提交。Actions 是用于副作用(如调用外部 API)的非确定性函数,它们在事务边界之外运行。

性能基准测试: 早期的独立基准测试表明,Convex 的响应式查询系统可以处理数千个并发订阅,增量传播延迟低于 100 毫秒。然而,与原始的 PostgreSQL 或简单的 Redis pub/sub 相比,它存在一定的开销。

| 指标 | Convex(自托管) | Firebase Firestore | Supabase Realtime |
|---|---|---|---|
| 查询延迟(首次加载) | 15-30ms | 50-100ms | 10-20ms |
| 增量传播延迟 | 20-50ms | 100-200ms | 30-80ms |
| 最大并发订阅数(单节点) | 5,000 | 10,000(估计) | 3,000 |
| 事务一致性 | 强一致性 | 强一致性(文档内) | 强一致性(PostgreSQL) |
| 离线支持 | 内置(客户端 SDK) | 内置 | 需要手动设置 |

数据要点: Convex 提供了具有竞争力的增量传播延迟和强一致性,但其单节点的订阅容量低于 Firebase 的托管服务。对于大多数实时应用(协作编辑、聊天、仪表盘)来说,这已经绰绰有余。离线支持是一个关键的差异化因素——Convex 的客户端 SDK 包含一个本地缓存,当连接恢复时会自动同步,这是 Supabase 开箱即用所不具备的功能。

GitHub 仓库: 开源仓库(get-convex/convex-backend)包含了完整的后端技术栈:基于 FoundationDB 的存储层、JavaScript 运行时、响应式引擎和 WebSocket 网关。开发者可以使用 Docker 或 Kubernetes 进行自托管。该仓库已有超过 11,700 颗星,并且维护活跃,仅在过去一天内就新增了 59 颗星。文档包括详细的架构指南和从 Firebase 迁移的教程。

关键参与者与案例研究

Convex Inc. 是该项目的母公司。由 James Cowling(前 Dropbox 分布式系统工程师)和 Stephen Pimentel(前 Google 员工)创立,该公司于 2022 年由 Andreessen Horowitz 领投,筹集了 2600 万美元的 A 轮融资。他们的策略是经典的开源核心模式:开源后端是免费且可自托管的,而托管云服务则增加了自动扩展、监控和慷慨的免费层(10GB 存储,每月 100 万次函数调用)等功能。

竞争格局: Convex 进入了一个拥挤的市场。主要竞争对手包括:

| 平台 | 架构 | 实时性 | 开源 | 关键差异化优势 |
|---|---|---|---|---|
| Convex | 响应式数据库 + JS 运行时 | 原生,基于增量 | 是(后端) | 确定性函数,离线同步 |
| Firebase | NoSQL 数据库 + 云函数 | 基于快照 | 否 | 成熟的生态系统,Google 集成 |
| Supabase | PostgreSQL + Realtime | LISTEN/NOTIFY | 是 | SQL 能力,行级安全 |
| PocketBase | SQLite + 管理界面 | 基于轮询 | 是 | 简单性,单一二进制文件 |
| Appwrite | 多数据库 + 函数 | 基于 WebSocket | 是 | 模块化,自托管 |

数据要点: Convex 是唯一一个将响应式增量引擎、确定性服务端函数和强大的离线支持结合在一个开源包中的平台。Firebase 拥有生态系统优势,但它是专有的,并且在规模扩大时成本高昂。Supabase 对于 SQL 爱好者来说很强大,但缺乏内置的离线同步,并且其实时引擎不够成熟。Convex 的赌注在于,构建协作式、实时应用的开发者会愿意为这种便利性付费。

更多来自 GitHub

GraphCast从零开始:降低AI气象模型的使用门槛GitHub上的“sfsun67/graphcast-from-ground-zero”仓库是一个工具型项目,旨在大幅简化Google DeepMind旗下GraphCast——一款用于全球天气预报的尖端AI模型——的执行流程。GraphC免费VPN的黑暗真相:GitHub“破解VPN仓库”深度调查GitHub上的youlianboshi/vpn仓库已成为用户寻求免费、无限制VPN访问的焦点。截至2025年5月底,该仓库已获得超过5789颗星,日增311颗,呈病毒式增长。该项目充当了一个集中式仓库,存放破解版VPN客户端——即通过修改无标题The zulko.github.com repository is a static personal blog built with Jekyll and hosted on GitHub Pages. At first glance,查看来源专题页GitHub 已收录 2281 篇文章

时间归档

May 20262970 篇已发布文章

延伸阅读

GraphCast从零开始:降低AI气象模型的使用门槛一个名为“graphcast-from-ground-zero”的全新开源项目,承诺消除运行Google DeepMind的GraphCast气象模型所需的复杂环境配置。AINews深入探究这一工具是否解决了AI在科学领域应用的“最后一公里免费VPN的黑暗真相:GitHub“破解VPN仓库”深度调查一个名为youlianboshi/vpn的GitHub仓库突然爆火,它精心收集了各类破解版VPN客户端和免费代理链接。近6000颗星、日增300+的增速,揭示了人们对无限制访问互联网的巨大需求——但代价是什么?AINews深入挖掘其背后的技The Quiet Power of Jekyll: Why Static Blogs Still Dominate Developer BrandingA single-star GitHub repository for a personal blog reveals a deeper trend: developers are abandoning bloated CMS platfoClawManager:用Kubernetes原生控制平面驯服AI桌面混乱ClawManager是一个Kubernetes原生的控制平面,能在集群规模下编排OpenClaw和Linux桌面运行时,解决AI代理环境管理的棘手问题。其“Kubernetes优先”的设计为桌面及GUI密集型AI工作负载带来了弹性调度与统

常见问题

GitHub 热点“Convex Open-Sources Its Reactive Database: A New Paradigm for Real-Time Apps”主要讲了什么?

Convex, the company behind the eponymous reactive backend platform, has released its core backend code as an open-source project on GitHub under the Apache 2.0 license. The reposit…

这个 GitHub 项目在“Convex open source self-hosting guide”上为什么会引发关注?

At its core, Convex is a tightly integrated system comprising three layers: a transactional database (built on FoundationDB), a deterministic JavaScript runtime for server-side functions, and a reactive query engine. The…

从“Convex vs Supabase real-time performance comparison”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 11715,近一日增长约为 59,这说明它在开源社区具有较强讨论度和扩散能力。