不是“兼容离线”,而是离线优先。
设备才是权威的主数据源 —— 网络是优化项,而非必需。
设备作为主数据源
每一次操作都先写入本地 SQLite。界面从不等待网络。
持久的变更队列
写入先入队,在后台双向对账,即使网络不稳也不丢失数据。
完全离线也能用
离线时应用不会卡死;继续运行,重连即同步。
服务端权威排序
全局顺序 + 写入检查点保证收敛 —— 绝不依赖设备时钟。
一张订单 —— 从现场到审批通过,无需等待网络
跟随一张真实订单:离线创建、同步、主管审批,再回到业务员。全程自动。
在路上,用手机或笔记本记录客户订单——含 18% 折扣。
一个引擎。你的语言。
同一个 Rust 内核,通过 FFI、JNI、N-API 和 WASM 以地道的 SDK 暴露。
稳定的通用 API,在同一个 Rust 内核之上的轻量地道 SDK。
与你现有的数据库同步
通过基于日志的 CDC 捕获变更(如 Postgres 逻辑复制),并根据能力探测回退到 trigger/outbox。
从本地写入到持久收敛
热路径上的 data plane、只管元数据的 control plane,以及只传输变化部分的增量传输。
设备写本地
应用写入本地 SQLite 并将变更入队 —— 瞬时完成,无论有无网络。
变更捕获
数据库支持时采用原生 CDC(基于日志),否则回退到 trigger + outbox。
Rust 内核
热路径上的 data plane(crossfly-sync-service),加上只处理元数据、位于热路径之外的 control plane。
增量传输
增量采用 TLS 1.3 上的 Protobuf/gRPC,批量/快照采用列式(Apache Arrow/Parquet,zstd)。附件走单独平面 —— 以 content_hash 引用,配可插拔存储(S3/MinIO/Azure Blob + CDN)。
CrossFly Sync 更进一步之处
实事求是的对比
| CrossFly Sync | PowerSync / ElectricSQL | Realm / Couchbase / RxDB | |
|---|---|---|---|
| 多数据库 CDC | ✓ | — | — |
| 动态 schema-per-tenant | ✓ | — | — |
| 租户级加密隔离 | ✓ | — | — |
| 带持久队列的真离线优先 | ✓ | ✓ | ◑ |
✓ 支持 · ◑ 部分 / 因产品而异 · — 不提供。该对比反映我们对典型能力的理解,可能随这些产品演进而变化。
开放内核,按活跃设备计费
你用于构建的部分是开放的;服务器为源码可见,并会随时间转为宽松许可证。
SDK、协议与规范
Apache-2.0 —— 你据以构建的 SDK、线上协议和规范采用宽松许可。
源码可见的服务器
FSL-1.1 —— 2 年后转为宽松许可证。非 AGPL,非 SSPL。
按活跃设备计费
按活跃同步设备付费 —— 与真实用量挂钩,而非席位或核心数。