@g9tm/syncdata

中文文档
1.5.23发布于 2026/11/15MITTypeScriptES Module零依赖近 30 天下载 4255

用于Lynx,节点和浏览器的G9SyncData.NET客户端的TypeScript双胞胎:同步引擎,G9RowBatch协议,SQLite客户端商店(与.NET商店相同)和信号R传输.

中文使用文档
文档目录4 节
  1. 安装
  2. 使用( 节点)
  3. 林克丝
  4. 许可证

@ g9tm/ 同步数据

类型脚本双 G9 同步数据 .NET客户端: 离线第一次同步 一个设备的 SQLite 数据库和一个 PostgreSQL 服务器,用于 林克丝 应用程序(与 @g9tm/syncdata-lynx),节点和浏览器. 相同的协议,相同的引擎行为,和 同样的 本地数据库 作为.NET客户端——MAUI应用程序所写的数据库在Lynx应用程序中打开并持续同步.

入境点什麽
@g9tm/syncdata发动机(G9SyncEngine),客户端模式,协议(DTOs,G9RowBatch帧),出错,摘要
@g9tm/syncdata/sqlitesQLite 客户端商店 (G9SqliteSyncStore超过任意 G9SqliteDriver
@g9tm/syncdata/signalr信号传输( R)G9SignalRSyncTransport), JSON 和 MessagePack, 包含精确的64位值
@g9tm/syncdata/node节点: sqlite 驱动程序(nodeSqliteDriverbrotli通过节点:zlib(useNodeBrotli(中文(简体) )
@g9tm/syncdata/testing任何运输过程中的过错注射(G9FaultInjectingTransport(中文(简体) )
@g9tm/syncdata/brotli-js纯 JavaScript Brotli 解码器,用于没有本地编码的运行时间

1.2.2版本——始终等于.NET包'版本. 什么样的东西可以说明什么, 以及每一个有意的区别: 议会.md。 。 。 .

安装

npm install @g9tm/syncdata @g9tm/signalr-supernetcore-client @microsoft/signalr @microsoft/signalr-protocol-msgpack @msgpack/msgpack

SignalR 包是可选的同位素:只有 @g9tm/syncdata/signalr 需要他们.

使用( 节点)

import { G9ESyncColumnType as T, G9SyncClientModelBuilder, G9SyncEngine, G9SyncParameters } from '@g9tm/syncdata';
import { G9SqliteSyncStore } from '@g9tm/syncdata/sqlite';
import { G9SignalRSyncTransport } from '@g9tm/syncdata/signalr';
import { nodeSqliteDriver, useNodeBrotli } from '@g9tm/syncdata/node';

useNodeBrotli(); // the server compresses frames with Brotli

// Tables in the order the .NET source generator emits them (entity type name), so both clients number them alike.
const model = new G9SyncClientModelBuilder()
  .table('farm.Pot', 'Pot', (t) =>
    t.key('Id').column('SiteId', T.Guid, false).column('Code', T.String, false).column('Weight', T.Decimal).index(null, false, 'SiteId'))
  .table('farm.Site', 'Site', (t) => t.key('Id').column('Name', T.String, false))
  .build();

const store = new G9SqliteSyncStore({ driver: nodeSqliteDriver(), databasePath: './device.db' });
const transport = new G9SignalRSyncTransport({ url: 'https://sync.example.com/g9sync', accessTokenFactory: () => token });
const engine = new G9SyncEngine(store, transport, model, { appVersion: '1.0.0' });

await engine.initialize();
await engine.subscribe('sites');
await engine.subscribe('site-pots', new G9SyncParameters().setGuid('SiteId', siteId));
const run = engine.run({ subscriptions: ['site-pots'] });
run.onProgress((p) => console.log(p.phase, Math.round(p.overall * 100) + '%'));
const result = await run.completion;
if (!result.isSuccess) console.error(result.error?.code, result.error?.message);

本地编辑是应用程序自身连接上的普通 SQL : 商店的触发器会捕捉它们, 接下来的运行会推 他们。 图标( E)engine.executeCommand),变化种子(readChangeFeed),拒绝,隔离和运行报告 在.NET上的工作(07-倾角引擎, (中文(简体) ), 08-克立特语Name) (中文(简体) ).

林克丝

使用 Lynx 的背景线程 @g9tm/syncdata-lynx数字 : useLynxBrotli() 财务报告和审定财务报表 createLynxSyncTransport({ url }) (MessagePack over the G9本土的WebSocket——发行Lynx Building没有他们的 g9Lynx Controls的本地SQLite驱动程序。 代码是ES2019 并且没有使用 API 背景 线程缺乏( 没有 BigInt, TextEncoder, (中文(简体) ), URL, (中文(简体) ), btoa, (中文(简体) ), globalThis —— 建造失败.

许可证

麻省理工学院. 布罗特利解码器 brotli-js 是谷歌(麻省理工学院): 第三次议会提名(md)。 。 。 .

版本与发布记录

@g9tm/syncdata 共发布 29 个版本,首次发布于 2026/10/06;过去 12 个月发布了 29 个版本。

版本发布日期距今
1.5.23latest2026/11/15今天
1.5.222026/11/15今天
1.5.212026/11/132 天前
1.5.202026/11/115 天前
1.5.192026/11/106 天前
1.5.182026/11/106 天前

关于 @g9tm/syncdata 的常见问题

@g9tm/syncdata 是什么?

用于Lynx,节点和浏览器的G9SyncData.NET客户端的TypeScript双胞胎:同步引擎,G9RowBatch协议,SQLite客户端商店(与.NET商店相同)和信号R传输.

如何安装 @g9tm/syncdata?

在项目目录运行 npm install @g9tm/syncdata,或使用 pnpm add / yarn add / bun add。

@g9tm/syncdata 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@g9tm/syncdata 支持 ESM 还是 CommonJS?

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

@g9tm/syncdata 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@g9tm/syncdata 可以商用吗?

@g9tm/syncdata 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@g9tm/syncdata 的下载量有多少?

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

@g9tm/syncdata 还在维护吗?

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