主题
XHIM 与 OpenIM、野火IM能力对标及超越门禁
对标日期:2026-07-28
结论口径:只比较公开可验证能力和 XHIM 当前仓库证据,不用规划代替实现。
本次对标把上游默认分支 HEAD 固定为可复查输入(解析时间 2026-07-26,Asia/Shanghai):
- OpenIM Server
main:2f7561bf49d622af7e47dd4d01fdad204fb2efcd; - OpenIM SDK Core
main:9267a252faab02bbc8ffab6223e6ae2341a0f7c9; - 野火IM Server
wildfirechat:28cc039a67360a506cd57132abacafd12c71c445。
公开产品文档没有仓库 Commit 语义,以下功能清单按同日抓取口径记录。以后更新 对标报告必须重新固定 Commit/Tag、抓取日期和原始测试证据,不能让浮动链接静默 改变旧结论。
1. 结论
当前 XHIM 不能宣称“完美超越 OpenIM 或野火IM”。
OpenIM 和野火IM都已经具备成熟的多端产品、部署经验和社区积累。XHIM 当前 较强的是 C++17 单一内核、稳定 C ABI、账号 Epoch/连接 Generation fence、本地 SQLite 权威读模型、Outbox/Sync 原子归并、可替换后端和签名 Endpoint;XHIM 现已补齐 五个原生 OS 的 Wrapper/UI 源码、Flutter/Electron/Web 首批适配、社交治理、Push 和预研 Call Actor/信令/RTC Token, 但正式签名包、大规模生产报告、法务审核和生态仍未完成。实时音视频已从纯 IM 首发范围移出,后续通过独立厂商 Provider 交付。
“完美超越”不是可验证的工程目标。XHIM 的正确目标是:
- 先达到 OpenIM 的可售功能基线;
- 再在指定指标上用同环境、同业务模型的测试胜出;
- 对仍不占优的生态、历史和部署经验保持明确说明。
2. 当前公开基线
| 维度 | OpenIM 当前公开能力 | XHIM 当前状态 | 判断 |
|---|---|---|---|
| 客户端内核 | Go 跨平台 Core;公开列出 Windows、macOS、Linux、iOS、Android、Web/WASM | C++17 Core + 稳定 C ABI;当前证据为 macOS 本机 Release/静态/动态/消毒器测试和 Harmony native 语法门禁 | XHIM 架构有差异化,但交付覆盖落后 |
| 基础 IM | 用户、好友、群、会话、消息、本地存储、同步 | 登录、可靠发送、会话/消息本地读、服务端权威跨设备已读和置顶/免打扰、本地草稿与检索、好友/群治理、编辑与撤回的服务端 CAS 闭环 | XHIM 核心闭环已接近,OpenIM 的应用能力与生产积累仍领先 |
| 消息类型 | 文本、图片、视频、表情、文件、语音、名片、位置、自定义、群公告 | 通用版本化消息信封;iOS、macOS、Android、Windows、HarmonyOS 提供图片/视频/语音/文件及常用固定协议工厂;已实现编辑、撤回和未知类型安全回退 | 常用合同与消息治理已补齐;跨端框架完整映射、完整表情/频道/机器人生态仍落后 |
| 群能力 | 入群申请/邀请、验证、转让、管理员、禁言、公告等完整公开清单 | 建群、审批、成员增删、管理员、禁言、转让、群名/头像/公告/简介、revision CAS、本地投影 | 核心治理接近;成熟应用层和组织能力仍落后 |
| 音视频 | 开源版公开为基础一对一通话;多人通话/会议不在开源范围 | 纯 IM 首发不承诺;保留 Call Actor、持久信令、RTC Token 和 Provider SPI 供后续厂商适配 | 不纳入本版胜负结论 |
| 服务端 | Go 微服务、集群、Docker/Kubernetes、REST、Webhook;公开宣称大群和海量消息支持 | Go 模块化服务端、PostgreSQL、JWT、WSS、媒体、Push、审计、通话信令 | XHIM 结构清晰,但缺多区域和规模报告 |
| UI/示例生态 | iOS、Android、Flutter、Electron 等 SDK/示例仓库 | iOS、macOS、Android、Windows、HarmonyOS 已有独立接入入口;Flutter/Electron/Web 有首批适配;其余平台见支持矩阵 | OpenIM 生态与平台广度仍领先 |
| 许可证 | Server 为 Apache-2.0;SDK Core 为 AGPL-3.0 或商业许可双授权 | 已有专有商业源代码许可基线,正式合同/第三方清单待律师和发布审核 | 商业边界更直接,但尚未法务封板 |
| 生产成熟度 | 长期公开版本、仓库活动和社区反馈 | 0.1 Commercial Beta,证据限于自动化、本机构建、隔离 PostgreSQL 集成测试和平台源码检查 | OpenIM 明显领先 |
OpenIM 官方资料:
2.1 XHIM 当前验证边界
下表记录的是 2026-07-26 当前 checkout 的本机或源码证据,不等于签名制品、 真机兼容性、生产部署或销售承诺:
| 范围 | 已有证据 | 尚不能据此宣称 |
|---|---|---|
| C++ Core | macOS 本机 shared Release 26/26、static Release 25/25;ASan+UBSan 和 TSan 各 24/24。macOS 不支持 LeakSanitizer,因此没有把泄漏检测记为通过 | Windows/Android/HarmonyOS 目标二进制、各原生 OS 的 ABI 消费、长期压力和生产硬件结果 |
| XHIM Server | go mod verify、go vet、普通与 race 测试通过;隔离 PostgreSQL 18 执行消息、管理、错误 Push Token fencing、事务容量和社交五组集成测试 | 当前源码已部署到生产、多区域容灾、真实对象存储/Push 厂商和 24h/72h 容量指标;本机常驻 Docker 还是较早构建 |
| iOS | 共享 Swift Facade 当前源码 63/63 测试;签名的 0.1.0-dev.2 Development XCFramework、SwiftPM 与 CocoaPods iOS 隔离消费者完成编译和链接 | CocoaPods Stable 包、iPhone 真机生命周期与升级矩阵;Development 快照仍需上传并登记私有 Specs |
| macOS | 共享 Swift Facade 当前源码 63/63 测试;macOS SwiftPM/CocoaPods 隔离消费者完成编译和链接 | 独立签名/公证、Apple Silicon/Intel、多窗口、睡眠唤醒与升级矩阵 |
| Android | 跳过 native build 的 Kotlin/Compose 测试与编译通过,JNI 通过 -Wall -Wextra -Werror -fsyntax-only | 完整 native AAR、Maven clean consumer、目标 ABI 和真机;本机 NDK 缺少 source.properties |
| Windows | .NET SDK、Sample 和合同测试在本机构建/执行通过,构建为 0 warning / 0 error | Windows x64/arm64 原生 DLL、WPF 真机、Authenticode、NuGet 仓库签名和 clean consumer |
| HarmonyOS | ArkTS/HAR 本机 assemble/type-check 以及 arm64-OHOS Native Bridge -Werror -fsyntax-only 通过 | 已签名 HAR/OHPM、DevEco clean consumer、完整 arm64 二进制链接和 HarmonyOS 物理设备 |
| Flutter | Dart Platform Interface 及 iOS、macOS、Android 原生桥源码;Darwin 桥通过 Swift parse,两个 podspec 可解析 | Flutter 工具链分析/测试、三端 clean consumer、附件/社交/群组/离线完整 API |
| Electron | Electron 43.2.0 的 macOS arm64 N-API 编译、prebuild 加载、TypeScript/IPC 测试及 npm dry-run 通过 | macOS x64、Windows、Linux prebuild,签名/公证与四系统 clean consumer |
正式发布状态以 商业证据状态和 发布清单为准;缺少的工具、证书、账号、正式包或 物理设备证据必须保持失败,不能用上述本机结果替代。
2.2 从野火IM吸收的产品原则
野火IM公开说明了几个对商业交付很有价值的边界:客户端按功能库、UI 库和应用 分层;支持私有化部署;业务扩展优先使用 Server API 与自定义消息,而不是修改 协议栈;附件/对象存储和音视频可以独立部署。XHIM 对应实现为:
| 野火IM值得借鉴的原则 | XHIM 落地 |
|---|---|
| SDK、UI、App 三层分离 | Headless Facade 与可选 SwiftUI/Compose/WPF/ArkUI 包分离 |
| 核心协议栈不由客户直接修改 | Runtime component 只交付稳定 C ABI 和静态/动态库 |
| 自定义消息承载客户业务 | content_type + version + payload + fallback,插件和 Renderer 分开注册 |
| 私有部署少配置 | 同一二进制只填 Bootstrap URL、Key ID、公钥,Endpoint 签名发现 |
| 常用功能开箱即用 | 类型化文字/图片/视频/语音/文件 API 与系统附件 Picker |
| 运维入口可视化 | XHIM Server 内嵌 /admin/ 自托管后台 |
野火IM仍在完整应用、组织通讯录、机器人、频道、超大群、成熟音视频和生产历史 方面领先。XHIM 不复制其 MQTT 协议、源码或商业模块,只参考产品分层和接入体验。
野火IM官方资料:
2.3 SDK 文档结构补充(2026-07-28)
OpenIM 的开发者体验优势还包括把 SDK API、 Callback、 Class、 Listener、 Enum和 Error Code拆成稳定入口;单个方法页继续 列出各平台 prototype、参数、返回和示例。
XHIM 已按自身真实 Facade 补充 SDK API Reference,覆盖 生命周期、消息、会话、关系链、群组、媒体、离线读取、事件、模型、错误、自定义 消息和 C ABI,并为 iOS、macOS、Android、Windows、HarmonyOS 分列方法名。 xhim_public_api_docs 会同时检查 100 个 Facade/扩展操作在五个原生 OS 的源码和 Reference 中存在,并检查 C ABI 导出基线全部进入 文档。
这关闭的是“可发现性和文档覆盖”差距,不代表 XHIM 已取得 OpenIM 的社区教程、 搜索流量、版本历史或第三方内容生态。
3. XHIM 可以形成优势的方向
3.1 单一 C++ 内核和长期稳定 C ABI
XHIM 不要求平台业务层直接依赖 C++ ABI 或 Go Mobile 生成物。Core 只向平台 Facade 暴露版本化 C ABI,iOS、macOS、Android、Windows 和 HarmonyOS 可采用各自原生 语言包装。这个设计有利于:
- 五个原生 OS 共用同一套同步、Outbox、账号切换和兼容语义;
- 商业客户锁定 ABI generation,减少平台 Wrapper 与内核编译器耦合;
- 同时交付 shared/static、私有定制 Adapter 和 Headless SDK。
这只是结构优势;必须在各平台最终制品消费测试全部通过后才可以对外宣传。
3.2 离线一致性和竞态防护
XHIM 已把本地数据库定义为 UI 权威读源,并用 Client Actor、Account Epoch、 Connection Generation、ACK/Sync 归并和 Cursor 原子提交处理竞态。对标测试 应重点覆盖:
- 登录 A 后快速切换 B,A 的网络回调不得污染 B;
- ACK 先于 Sync、Sync 先于 ACK、重复 ACK/事件都得到同一最终状态;
- 同账号多设备的 read sequence 单调收敛,非法超前已读不能跳过未同步消息;
- 断网、杀进程、租约恢复后不丢消息、不重复展示;
- 旧 WebSocket、旧 Token、旧媒体任务不能复活已退出账号。
如果 XHIM 在同一故障注入矩阵下得到更低的数据不一致率和崩溃率,这才是可成立 的“内核可靠性超越”。
3.3 可替换后端与商用定制
Product Adapter、对象存储和未来 RTC Provider 都采用 Port/SPI 边界。商业客户 可以使用 XHIM 参考服务端,也可以替换认证、HTTP/WSS、S3-compatible 存储或 RTC 厂商,而不在四套平台 Wrapper、五个客户端端点中复制状态机。
这一优势必须用至少两个独立 Adapter 的契约测试证明,不能只凭接口存在。
3.4 从一开始建立兼容和发布门禁
XHIM 已为 C ABI、Protobuf 字段、SQLite 迁移、CMake 包消费和品牌建立门禁。 后续还要加入:
- N-2 客户端与新服务端、N-2 服务端与新客户端兼容矩阵;
- 升级/回滚、坏库恢复、最低客户端版本和能力协商;
- 各平台符号、包签名、SBOM、NOTICE 和可重复构建;
- 生产 SLO、容量基准、灾备演练和公开限制。
4. 不允许使用的宣传语
在 Stable 门禁关闭前,不允许使用:
- “完美超越 OpenIM”;
- “所有平台全部可用”;
- “支持亿级用户/十万群”;
- “端到端加密”;
- “音视频已完成”;
- “开箱即用的完整 UI Kit”;
- “生产可用”或“银行级安全”。
可以准确使用的阶段性表述是:
XHIM 正在建设以 C++17 单一内核、稳定 C ABI、离线一致性和可替换服务端为 核心的商用 IM SDK;当前为 Commercial Beta,消息、社交治理、Push、附件媒体和 自定义消息扩展已形成,但平台签名包、完整 UI Kit 和生产规模验证仍在推进。 实时音视频不属于纯 IM 首发承诺。
5. 对标验收矩阵
每次准备声称“在某维度超过 OpenIM”时,必须保存相同环境下的原始报告:
| 指标族 | 必测内容 | 胜出条件 |
|---|---|---|
| 正确性 | 换号、乱序、重复、进程重启、断线恢复、迁移 | XHIM 无 P0 数据错误,且失败数低于对标版本 |
| 性能 | 首次登录、增量同步、发送 ACK、重连、冷启动、本地分页 | 同设备、同数据集下给出 p50/p95/p99 和资源占用 |
| 容量 | 单会话吞吐、账号事件流、大群 fan-out、长连接、PostgreSQL/S3 | 达到公开售卖规格并完成 24h/72h 稳态压测 |
| 平台 | iOS、macOS、Android、Windows、HarmonyOS、Flutter、Electron 及 Web/RN/Unity/uni-app/小程序最终包和示例 App | 每端空白工程消费、目标设备生命周期和升级矩阵全绿 |
| 交付 | 文档、示例、诊断、版本兼容、安全、法务、SLA | 第三方团队不访问源码即可完成接入和故障定位 |
| 可选音视频 | 呼叫竞态、后台/锁屏、弱网、TURN、跨端、多人会议 | 独立商品接入生产 Provider 后再单独比较,不影响纯 IM 验收 |
6. 实施顺序
- 已完成消息、好友、群、Push、媒体的 Headless 源码主闭环;
- 已完成 iOS、macOS、Android、Windows、HarmonyOS 的独立 QuickStart 和 原生 Facade/UI 源码,并开始交付 Flutter/Electron/Web 适配层;
- 继续完成 React Native、Unity、uni-app 和小程序 Adapter,再把 各平台源码打成正式签名包,由空白工程、目标设备、升级与弱网矩阵消费;
- 完成跨平台数据库密钥/安全缓存端口、生产 Push/对象存储/审核 Adapter;
- 完成安全、法务、运维、容量和灾备证据门禁;
- 在固定 OpenIM 版本和固定测试环境下发布逐项对标报告;
- 若市场需要,再以独立版本接入一个生产 RTC Provider 并单独验收。
只有第 1 至第 5 步达到 Stable,且第 6 步有可复现证据后,才能说 XHIM 在某些 明确维度超过 OpenIM;生态和生产历史不能通过一次压测“完美超越”。