Zero 1.0 发布Rocicorp Web 同步引擎迎来首个稳定版
Rocicorp 发布 Zero 1.0这是其通用 Web 同步引擎的首个稳定版本。经过近两年的开发、50 多个版本迭代、数千次提交以及数百个缺陷修复后该版本终于面世。这一里程碑标志着 Rocicorp 现已全面支持 Zero API 并承诺持续维护后续预计极少出现破坏性变更即便有改动影响范围也会远小于测试版阶段。从功能上看发布说明提到1.0 版本与之前的 0.26.2 版本相比更新幅度极小主版本号升级主要为象征意义并未引入重大变更。此次更新的核心亮点是新增了一个 Schema 变更钩子可通过 COMMENT ON PUBLICATION 语句检测 Supabase 上的发布变更从而绕开 Supabase 不支持对发布操作使用事件触发器的限制。新版本还修复了 litestream 恢复数据损坏、变更数据捕获CDC异常时的错误处理、关闭期间的 IPC_CHANNEL_CLOSED 竞态条件、孤立订阅者场景以及 time 和 timetz 类型的 SQL 生成问题。Zero 的工作原理是将应用内的 zero-client 库与 zero-cache 服务配对后者会维护一份 Postgres 数据库的只读副本。使用 ZQLZero 的流式查询引擎编写的查询会先在本地缓存上执行并在下一帧返回匹配结果同时后台会从服务器同步权威数据。创始人 Aaron Boodman 在 Hacker News 上表示这种“自带数据库”Bring-Your-Own-Database模式是一大优势Zero “本质上只是一个高级缓存”不会造成数据损坏团队既可逐步接入使用也能轻松完成迁移。社区对开发者体验的反应较为积极www.ntjrcw.com但对于其生产环境可用性则持谨慎的态度。Marmelab 在对这款引擎进行评测时肯定了它出色的运行速度与开发者体验同时也指出了几处明显的局限结合应用程序的复杂度和所选的技术栈部分限制依旧较为突出。以下是我们整理的相关问题示例目前仅支持 PostgresPostgres 视图不会被同步部分 Postgres 列类型不受支持例如 array客户端 API 无法针对报错或被驳回的数据更新做出响应Lobsters 上有评论者指出客户端包体积为 718 KB未压缩gzip 压缩后为 232 KB且不支持服务端渲染SSR而 Reddit 上的一个讨论帖则提出质疑在本地存储、同步副本和源数据库之上叠加这么多层是否过于复杂。Zero 进入了一个拥挤的赛道与 ElectricSQL、InstantDB、PowerSync 和 Convex 等竞品同台竞技。Boodman 建议希望实现完全去中心化、端到端方案的开发者可以关注 Jazz。服务端渲染功能目前仍在路线图中尚未正式推出。因为没有重大变更升级过程非常直接npm install 从较旧版本升级的团队仍需查阅各版本的发布说明了解此前的 API 变更例如 0.23 版本中的自定义 mutator 类型变更并按照Schema 部署指南中的顺序建议操作以避迁移期间出现停机。