Skip to content

XHIM 平台支持矩阵

本页是平台支持声明的唯一入口。目录存在、Facade 源码存在、能生成安装包和已经 通过真实消费者验证是四件不同的事;销售材料只能使用本表的“可交付等级”,不能 根据某个共享源码目录自行推断。

机器可读声明位于 platforms/support-manifest.json。普通校验运行 python3 scripts/release/validate_platform_support.py;准备宣称平台覆盖不低于 OpenIM 时必须再加 --require-openim-parity。只要任一平台未达到 Stable,该命令 就会失败,避免路线图被误写成商品能力。

1. 可交付等级

等级含义允许对外表述
Stable签名制品、空白消费者、真机/目标设备、升级和弱网矩阵均通过正式支持
BetaAdapter、安装包和主要消费者构建通过,仍有明确发布证据待补商用测试支持
Source Alpha有可审查源码和自动化门禁,但没有完整签名制品/设备证据预览,不承诺生产
Architecture只有协议/设计或共享 Core 可复用,还没有目标端 Adapter不得写“已支持”

2. XHIM 当前状态

平台独立客户入口Adapter / API安装形式当前等级仍需完成
iOSiOSSwift 回调 + Concurrency、SwiftUICocoaPods / 二进制 Swift PackageBetaStable Pod、完整 iPhone 机型/系统/升级矩阵
macOSmacOSSwift 回调 + Concurrency、SwiftUI/AppKit二进制 Swift PackageBeta独立签名/公证、Intel/Apple Silicon、多窗口与睡眠矩阵
AndroidAndroidKotlin Coroutine/Flow、ComposeMaven / AARSource Alpha正式 Maven、目标 ABI 和物理设备矩阵
WindowsWindowsC# Task/Event、WPFNuGetSource AlphaWindows 签名 NuGet、x64/arm64 消费与设备矩阵
HarmonyOSHarmonyOSArkTS Promise/Event、ArkUIOHPM / HARSource Alpha签名 HAR、DevEco clean consumer 和真机矩阵
FlutterFlutterDart Platform Interface + iOS/macOS/Android bridgepub + 原生包Source Alpha映射附件/社交/群组/离线全 API,安装 Flutter 后跑三端消费者
ElectronElectron完整 Node-API NativeClient + 安全 IPCnpm + prebuildSource AlphamacOS arm64 已通过 Electron 43.2.0 ABI 编译/加载;仍需 x64、Windows、Linux prebuild、签名/公证与消费者矩阵
Linux 原生C ABIC ABI / C++ CoreCMake packageSource AlphaLinux Product Adapter、发行包、UI 选择与发行版矩阵
Web / BrowserWebTypeScript Web Lite Runtime + Protobuf Fetch/WSSnpmSource Alphanpm 正式发布、主流浏览器/弱网消费者矩阵、附件 UI 和可选离线存储
React Native本页目标为 iOS/Android 原生桥npmArchitectureTurboModule、Codegen、示例与双端消费者
Unity本页目标为 C# P/Invoke + 原生插件UPMArchitectureWindows/macOS/iOS/Android 插件和 IL2CPP/AOT 验证
uni-app本页目标为 Web/原生双驱动uni_modulesArchitectureH5、小程序、App 三种运行时 Adapter
微信/通用小程序本页目标为无本地库的 XHIM Litenpm / 小程序包ArchitectureWSS/HTTPS Lite 协议、受限存储、包体和平台审核矩阵

BetaSource Alpha 不是失败状态,而是防止销售承诺超过工程证据。任何平台 升级等级都必须同时提交制品 Hash、构建来源和消费者结果。

OpenIM 枚举中的 iPad 和 AndroidPad 是现有移动 SDK 的设备形态,不另造一套 重复内核。XHIM 在机器清单中把 iPhone/iPad 绑定到 iOS,把手机/平板绑定到 Android;发布矩阵仍须分别覆盖尺寸、旋转、分屏、后台和最低系统,不能用手机 结果替代平板验收。

3. 与 OpenIM 平台面的核对

截至 2026-07-28,OpenIM 的公开 QuickStart 导航包含 iOS、Android、Unity、 Flutter、React Native、Browser、Electron、uni-app 和 Mini Program;平台枚举 还包含 Windows、macOS、Web、Linux 和 HarmonyOS。核对入口:

因此 XHIM 不能再把“iOS + macOS + Android + Windows + HarmonyOS”称为完整平台 覆盖。Flutter、Electron 和 Web 已形成可审查的真实适配项目;React Native、 Unity、uni-app 和小程序在对应 Adapter、制品及消费者门禁完成前仍是明确缺口。 Web 当前为 Source Alpha,不能把源码与自动化门禁误写成 Stable 浏览器发行证据。

4. 不复制业务内核的平台架构

text
XHIM C++ Core + stable C ABI
├── iOS Swift Facade
├── macOS Swift Facade
├── Android Kotlin/JNI Facade
├── Windows C# P/Invoke Facade
├── HarmonyOS ArkTS / shared Node-API Facade
├── Flutter Platform Interface
│   ├── iOS bridge
│   ├── macOS bridge
│   └── Android bridge
├── Electron shared Node-API + Main/Preload/Renderer
├── Browser TypeScript Web Lite Runtime
│   └── Protobuf over Fetch + WSS
├── React Native native bridge
├── Unity C# native plugin
└── Web runtime
    ├── uni-app H5
    └── Mini Program Lite

登录、Outbox、重连、同步、游标、消息状态和数据库迁移只允许在 Core 或明确的 Web Lite Runtime 中实现一次。跨端框架只映射类型、生命周期、线程和平台权限, 不能各自重新写一套 IM 状态机。

浏览器受沙箱、二进制加载和持久化能力限制,当前有意采用独立的 TypeScript Web Lite Runtime,不假装加载原生 C++ Core。它复用 canonical Protobuf 契约、 服务端幂等/同步语义和统一能力协商;Electron 仍使用原生 Core,两者分别交付。

5. 超越而不是只追平

平台数量只是最低门槛。XHIM 每个平台还要具备:

  • 页面不接触 Token 的账号级 Credential Provider 和自动续期;
  • 普通请求取消与 durable 消息/媒体取消明确分开;
  • SQLCipher、账号隔离、离线只读和错误密钥 fail-closed;
  • 自定义消息的版本、fallback 和 Renderer Registry;
  • 可观测错误、operation ID、trace ID、诊断快照和脱敏支持包;
  • 签名制品、SBOM、NOTICE、构建来源和空白消费者门禁。

只有当 OpenIM 已公开的平台全部达到 Stable,且上述差异化能力有实际制品和 测试证据后,才可以对外使用“平台覆盖不低于 OpenIM”的描述。

XHIM 客户端 SDK 与服务端文档