ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

RxDB 演进路线图解析:从 Backlog 看本地优先数据库的未来技术方向

RxDB 演进路线图解析:从 Backlog 看本地优先数据库的未来技术方向 数据库NoSQL嵌入式数据库实时数据库【免费下载链接】rxdbThe local-first database that runs on every JS runtime and replicates with your existing backend - no vendor, no lock-in - https://rxdb.info/项目地址https://gitcode.com/gh_mirrors/rx/rxdb点击查看免费下载RxDB 是一个运行在所有 JavaScript 运行时上的本地优先local-first数据库其官方仓库通过 orga/BACKLOG.md 维护着一份面向未来的功能开发清单。本文以该 Backlog 为骨架逐条解读每一项待实现特性的技术动机、与当前仓库已有实现如 NATS 复制插件、SQLite 存储、Middleware 钩子的关联帮助开发者理解 RxDB 的演进方向并为有意贡献 PR 的开发者提供技术背景与切入点。说明Backlog 中列出的功能均为未来待实现项不代表当前版本已经支持文中涉及的能力均以 orga/BACKLOG.md 的原始描述与当前仓库源码为准。生态与工具链扩展面向开发者体验的新组件Backlog 的前几项聚焦于开发者工具与数据访问层扩展核心诉求是让本地数据看得见、接得上。RxServer MCP Server endpointBacklog 计划为 RxServer 提供 MCPModel Context ProtocolServer 端点。MCP 是让 AI 模型与外部工具交互的标准协议若该端点落地AI 编程助手或智能体将可以直接通过 MCP 协议查询 RxDB 的数据库状态、执行数据操作从而在本地优先架构中实现可被 AI 直接驱动的数据访问层。database viewer plugin数据库可视化查看插件该项设想为开发者提供一个 UI用于检查本地存储的数据。这与仓库中已有的调试辅助设施一脉相承Backlog 后半部分还单独列出了一条make a debugger UI并关联了pubkey/rxdb#3286issue。当前仓库中开发模式插件 与 dev-mode 文档 已经承担了部分开发期诊断职责而 viewer/debugger 插件的目标是更进一步以图形化界面直接呈现本地文档内容降低排查数据问题的门槛。Storage based on ReactNative-MMKV计划基于mrousavy/react-native-mmkv实现新的 RxStorage。MMKV 是腾讯开源的移动端高性能 key-value 存储基于 mmap 内存映射在 React Native 场景下以低延迟著称。该条目表明 RxDB 正在为 React Native 运行时探索更快的本地存储后端方向是补齐 rx-storage-filesystem-expo 之外的移动端存储选项。新的 RxStorage 后端PostgreSQL 与 PGLite数据库生态的丰富程度直接决定了 RxDB 的适用场景Backlog 为此规划了两个基于 SQL 的存储后端。PostgreSQL RxStorage计划将 PostgreSQL 作为 RxStorage 后端并参考了thomas4019/mongo-query-to-postgres-jsonb项目——即把 RxDB 的 Mango 查询语义翻译为 PostgreSQL 的 JSONB 查询。这与 RxDB 的存储无关设计一致RxDB 通过统一的 RxStorage 接口 抽象底层存储只要实现了增删改查与查询接口任何后端内存、IndexedDB、SQLite、MongoDB 等都能接入。PostgreSQL 后端将让需要服务端 SQL 数据库的团队直接用 RxDB 的查询 API 操作 Postgres。PGLite RxStoragePGLite 是 PostgreSQL 的 WASM 移植版可运行在浏览器中。该条目参考了社区项目XuHaoJun/rxdb-storage-pglite意图是在浏览器端获得真正的 PostgreSQL 语义。结合 RxDB 已有的 rx-storage-sqlite同样面向浏览器/移动端的嵌入式 SQL 存储可以推断团队正在持续加码浏览器内嵌 SQL 引擎这条技术路线。架构重构与中间件演进refactor middleware to not be based on side effects当前 RxDB 的 Middlewarepre/post hooks机制通过钩子函数在异步操作执行过程中注入控制逻辑钩子以series串行或parallel并行方式运行可同步或异步返回 Promise抛出错误即可中断操作。仓库文档 middleware.md 列出的钩子包括preInsert、postInsert、preSave、postSave、preRemove、postRemove、postCreate。Backlog 引用了pubkey/rxdb#3426issue目标是重构该机制使其不再基于副作用。这意味着未来 middleware 可能从修改数据对象的副作用式钩子演进为更显式、可组合的数据变换管道降低隐式依赖、提升可测试性。Reduce persist plugin精简持久化插件该项计划精简持久化插件体系。持久化是本地优先数据库的核心能力精简方向可能是合并重复插件、减少包体积或统一 API与 RxDB 一贯的插件化、按需加载理念参考 plugins.md保持一致。复制与同步协议扩展复制是 RxDB 与后端同步的核心能力Backlog 规划了多个新协议接入点。Redis Sync计划实现类似 NATS 复制插件 的 Redis 同步。以现有 NATS 插件为参照可以清晰地推断其架构replicateNats通过 JetStream 实现拉取与推送——pull 侧以 checkpointsequence记录同步进度、按batchSize批量拉取push 侧先读取服务端文档状态用expect.lastSubjectSequence做乐观并发控制冲突时交由collection.conflictHandler处理见 replication-nats/index.ts。Redis Sync 预计会复用同一套 replication 协议 的拉取/推送/冲突处理骨架。Add plugin for postgREST replication计划新增 postgREST 复制插件。postgREST 将 PostgreSQL 数据库自动转换为 RESTful API若落地RxDB 客户端即可直接通过标准 HTTP 与 Postgres 后端同步无需手写服务端。Add plugin for Pocketbase replication计划新增 Pocketbase 复制插件。Pocketbase 是一个开源的实时后端内嵌 SQLite该插件将使 RxDB 可以直接与 Pocketbase 的数据接口同步进一步扩大现有后端即同步目标的覆盖面——这与项目描述中replicates with your existing backend - no vendor, no lock-in的定位完全一致。tool to generate sync endpoints in swagger计划提供工具用 Swagger 规范自动生成同步端点降低接入 HTTP 类复制协议如 replication-http时的服务端配置成本。查询优化Mango 查询的规范化与优化器这是 Backlog 中技术细节最密集的条目计划创建一个对 Mango 查询进行规范化和优化的独立包并给出了具体的优化点清单若$in值只有一个元素用$eq替代$in若字段是枚举类型用$in展开为与操作符匹配的全部枚举值替代其他操作符若$eq与 schema 不匹配查询恒返回空数组直接短路检测永远无法匹配的查询如不可能的$eq值或空$in数组合并$and操作符若可能为$regex查询使用索引参考 MongoDB 官方对 regex 索引使用的说明若对 primaryKey 做$eq且附带其他操作符则改为按主键 find-by-id 再按查询操作符过滤结果。这些优化与 RxDB 现有的 查询优化器Premium 形成互补后者在构建期通过真实数据与findBestIndex计算最佳索引该工具内置runs参数控制测试轮数、强调使用生产级 testData 且必须与生产环境同一 RxStorage 与运行时而 Backlog 的优化器则专注于查询本身的代数化简。二者叠加可以在索引选择与查询执行两个层面共同提升 查询计划 的效率。存储引擎底层优化SQLite 的 JSON1 扩展Backlog 计划在原生 Android 支持 JSON1 时启用 SQLite 的 JSON1 扩展并引用了 PowerSync 关于 SQLite 高性能优化的文章。JSON1 是 SQLite 官方提供的 JSON 处理扩展允许在 SQL 层面直接操作 JSON 字段从而减少序列化/反序列化开销。当前仓库的 SQLite 实现已经将文档数据以 JSON 形式存放建表语句中data列的类型即为json见 sqlite-storage-instance.ts写入时通过data json(?)显式调用 SQLite 的 JSON 函数处理见 sqlite-helpers.ts。可以推断启用 JSON1 后RxDB 有望在 SQLite 侧直接完成部分查询过滤与索引下推进一步压榨嵌入式数据库的性能潜力。结语参与 Backlog 的正确姿势以上便是 RxDB 当前 Backlog 的全貌从 MCP 集成、数据库查看器到 PostgreSQL/PGLite/ReactNative-MMKV 存储后端再到 Redis/postgREST/Pocketbase 复制协议、middleware 重构、查询优化器与 SQLite JSON1覆盖了存储、同步、查询、开发体验四大维度。官方在 Backlog 文件开头明确给出协作约定如果你想为其中某项创建 PR请先创建 issue 再开始工作以避免重复劳动。对贡献者而言最值得优先钻研的是两条证据链一是 replication 协议与各复制插件的实现二是 RxStorage 接口与各存储插件的实现它们分别是新增同步协议与新增存储后端时必然要复用的基座。赞分享数据库NoSQL嵌入式数据库实时数据库【免费下载链接】rxdbThe local-first database that runs on every JS runtime and replicates with your existing backend - no vendor, no lock-in - https://rxdb.info/项目地址https://gitcode.com/gh_mirrors/rx/rxdb点击查看免费下载相关推荐终极PNG压缩指南如何使用pngquant实现60-80%的文件大小缩减终极PNG压缩指南如何使用pngquant实现60 80%的文件大小缩减 pngquant是一款高效的PNG压缩工具通过将图像转换为更高效的8位PNG格式图像处理MOSS-Music-8B-Thinking-8bit部署指南从环境配置到生产级应用的最佳实践MOSS Music 8B Thinking 8bit部署指南从环境配置到生产级应用的最佳实践 MOSS Music 8B Thinking 8bit是一款针KittenPHP-DB-Engine未来发展方向从当前版本看数据库技术演进KittenPHP DB Engine未来发展方向从当前版本看数据库技术演进 KittenPHP DB Engine作为VK KittenPHP/DB/Eng编译器后端数据库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表