@cocreate/crud-client

中文文档
2.0.1发布于 2026/11/06AGPL-3.0ES Module近 30 天下载 3191

一个高性能,多租借的CRUD客户端,用于CoCreate. 使用统一的API执行创建,读取,更新,删除,并针对一个或多个存储提供者进行实时同步操作. 支持各种数据库的并行持久性,例如:

中文使用文档
文档目录21 节
  1. 文档
  2. 目录
  3. 特征
  4. 安装
  5. 使用量
  6. 初始化客户端
  7. 读取数据
  8. 从特定存储提供者读取
  9. 在单一存储提供者中创建数据
  10. 在多个存储提供者中创建数据
  11. 更新数据
  12. 删除数据
  13. 如何运作
  14. 结构和有效载荷光谱
  15. 统一有效载荷对象Schema
  16. 离线同步
  17. 储存供应商
  18. 通知
  19. 路线图
  20. 如何贡献
  21. 许可证

@ cocreate/ crud- 客户端

一个高性能、数据库不可知客户端的CRUD引擎,用于使用单一的统一有效载荷进行查询、同步和持续应用数据。 它提供离线第一架构,透明地同步本地和远程存储提供商,并与CoCreate实时协作生态系统进行无缝整合. 单一的CRUD请求可以同时瞄准一个或多个存储提供者,允许应用程序在分布式数据库之间保持同步数据,并具有最小的应用逻辑.


文档

对于完整的API参考文献,存储适配器配置,同步策略,以及高级示例,参考了CoCreate CRUD客户端文档.

目录


特征

  • 统一 CRUD API : 使用一致的有效载荷结构创建、读取、更新和删除数据,而不论潜在的存储提供者如何.
  • 多堆放执行 : 同步执行针对一个或多个存储提供者的 CRUD 操作 .
  • 并行数据库同步 : 当指定多个存储提供者时,操作同时执行,以保持分布式数据库同步.
  • 离线- 第一架构 : 继续使用本地存储提供者进行下线时读取并写入数据.
  • 实时同步 : 与CoCreate Socket生态系统无缝地集成,使客户端和服务器的数据同步.
  • 数据库不可知论 : 支持索引DB,SQLite,MongoDB,PostgreSQL,MySQL,Firestore,以及通过统一的有效载荷格式的额外适配器.
  • 优化更新 : 本地操作在背景中发生远程同步时立即执行.
  • 无国籍操作 : 每个 CRUD 请求都是完全自成一体的,使得请求容易进行序列化,排队,重试,并重放.

安装

npm install @cocreate/crud-client

使用量

初始化客户端

import crud from "@cocreate/crud-client";

await crud.init({
    organization_id: "64b9a32e18f21bc56789abcd",
    host: window.location.host
});

读取数据

const response = await crud.send({
    method: "object.read",
    array: "users"
});

console.log(response);

从特定存储提供者读取

const response = await crud.send({
    method: "object.read",
    array: "users",
    storage: "mongodb"
});

何时 storage 是字符串,操作只针对指定的存储提供者执行.


在单一存储提供者中创建数据

await crud.send({
    method: "object.create",
    array: "users",
    storage: "mongodb",
    object: [{
        name: "John Doe",
        email: "[email protected]"
    }]
});

在多个存储提供者中创建数据

await crud.send({
    method: "object.create",
    array: "users",
    storage: [
        "mongodb",
        "sqlite"
    ],
    object: [{
        name: "John Doe",
        email: "[email protected]"
    }]
});

何时 storage 是一个阵列,同一有效载荷在每一个匹配的存储提供者之间平行执行。 这使得应用程序可以使用一个单一的CRUD请求对多个数据库的数据进行同步.


更新数据

await crud.send({
    method: "object.update",
    array: "users",
    storage: [
        "mongodb",
        "sqlite"
    ],
    object: [{
        _id: "64b9a32e18f21bc56789abcd",
        status: "active"
    }]
});

删除数据

await crud.send({
    method: "object.delete",
    array: "users",
    storage: "mongodb",
    object: [{
        _id: "64b9a32e18f21bc56789abcd"
    }]
});

如何运作

  1. CRUD的每一项请求均被表述为标准有效载荷物体.
  2. 客户端决定由哪个存储提供者处理请求.
  3. 本地供应商立即执行快速应用响应.
  4. 远程提供者通过活动 Coreate 通信层传输请求.
  5. 当指定多个存储提供者时,操作会同时执行.
  6. 无论数据库技术如何,答复都趋于一致.
  7. 离线突变在恢复连接后自动排队并同步.

结构和有效载荷光谱

统一有效载荷对象Schema

财产类型说明
methodStringCRUD 操作 (object.create, (中文(简体) ), object.read, (中文(简体) ), object.update, (中文(简体) ), object.delete, (中文(简体) ), array.read(见a/c.5/49/70,附件).
arrayString收集、表格或数据集名称.
objectArray<Object>要创建、更新或删除的文档.
storageString | Array<String>目标存储提供者。 当提供数组时,所有匹配的提供者都会平行执行请求.
filterObject查询过滤器、限制、排序、索引、预测和搜索标准.
organization_idString多租户工作空间标识符.

离线同步

CRUD客户端采用离线先行执行模式.

无法连接时 :

  • 阅读继续使用本地存储提供者.
  • 写作在当地进行.
  • 待发突变自动排队.
  • 连接返回时同步排队操作 .
  • 应用程序仍然具有响应性,而不需要不断联网.

储存供应商

这个 storage 属性决定 CRUD 操作在哪里执行 .

存储可能参考配置的提供者, 如MongoDB, SQLite, IndexedDB, PostgreSQL, 或任何自定义适配器 .

storage: "primary"

存储名是由您的应用程序配置定义的别名 .

多个存储提供者可以同时被锁定.

storage: [
    "primary",
    "backup",
    "analytics"
]

或者说

storage: [
    "mongodb",
    "sqlite"
]

当提供一系列存储提供者时,CRUD客户端在每一个匹配的提供者之间同时执行同样的操作,允许应用程序在多个数据库之间保持同步数据,同时有一个请求.


通知

发布笔记,新功能,突破变化,并发布迁移指南在项目的"CHangGELOG"和"GitHub"发布会上.


路线图

即将作出的改进包括:

  • CRDT 基于冲突的解决
  • 背景同步工人
  • 三角洲同步
  • 交易分批
  • 图表查询支持
  • 可插式存储适配器
  • 边缘同步
  • 高级解决冲突战略

如何贡献

我们鼓励为我们的图书馆捐款(你甚至可能得分不少)。 请看我们的 捐款额 详细指南。 我们希望这个图书馆 由社区驱动和创造者主导.

通过创建问题、提交拉动请求、审查现有讨论或参与专题请求,帮助确定发展的优先次序.


许可证

该软件在GNU Affero通用公共许可证版本3(AGPLv3)和商业许可证下获得双许可证.

  • 开源使用 : 对于开源项目和非商业用途,该软件可在AGPLv3下提供. 许可证全文见LICENSE文件.
  • 商业用途: 商业组织如果打算在AGPL要求之外使用这种软件,必须通过Coreate取得商业许可证.

版本与发布记录

@cocreate/crud-client 共发布 337 个版本,首次发布于 2021/04/04;过去 12 个月发布了 12 个版本。

版本发布日期距今
2.0.1latest2026/11/064 天前
2.0.02026/11/037 天前
1.39.02026/10/2120 天前
1.37.02026/08/043 个月前
1.36.12026/08/013 个月前
1.36.02026/07/293 个月前

关于 @cocreate/crud-client 的常见问题

@cocreate/crud-client 是什么?

一个高性能,多租借的CRUD客户端,用于CoCreate. 使用统一的API执行创建,读取,更新,删除,并针对一个或多个存储提供者进行实时同步操作. 支持各种数据库的并行持久性,例如:

如何安装 @cocreate/crud-client?

在项目目录运行 npm install @cocreate/crud-client,或使用 pnpm add / yarn add / bun add。

@cocreate/crud-client 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cocreate__crud-client 是否存在。

@cocreate/crud-client 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cocreate/crud-client 可以商用吗?

@cocreate/crud-client 使用 AGPL-3.0 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

@cocreate/crud-client 的下载量有多少?

根据 npm 官方下载统计,@cocreate/crud-client 在 2026/10/10 – 2026/11/08 这 30 天内被下载 3,191 次,日均约 106 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cocreate/crud-client 还在维护吗?

最新版本 2.0.1 发布于 2026/11/06(4 天前);至今共发布 337 个版本,其中过去 12 个月发布了 12 个;首次发布于 2021/04/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。