Native (C ABI) IMLib
Native 端以 Rust 实现 + C ABI 头文件交付:opaque 句柄 + 返回 int 错误码 + out 参数;字符串统一 UTF-8、NUL 结尾。IMKit 以 view-model / 格式化 / 角标 / 状态计算层交付,UI 由宿主原生框架渲染。
平台状态
契约 IDL v1.0.0(frozen,冻结修订 35);本平台绑定状态:ga。已按冻结 IDL 交付。
事件:16 类(来自 IDL eventPayloads),详见 连接监听。
环境与制品
| 项 | 值 |
|---|---|
| 语言 / 运行时 | Rust core + C ABI |
| 包 / 模块名 | im-sdk (crate) + libim_sdk |
| IMLib 制品 | im-sdk |
| IMKit 制品 | im-kit + include/im_kit.h |
| 类型 / 契约声明 | — |
| Demo / 示例 | — |
| 绑定状态 | ga |
API 风格
| 项 | 内容 |
|---|---|
| 客户端类 | IMClient |
| 工厂 / 初始化 | init(options) |
| 命名规则 | im_<domain>_<action> |
| 异步风格 | C ABI 约定:im_client_* 返回 int(0 成功,非 0 为 IDL 错误码);char** out_json 由库分配、调用方用 im_string_free 释放;char* out + size_t cap 为调用方缓冲区(0 成功 / -1 参数非法 / -2 缓冲区不足)。 |
| 事件 API | addEventListener(event, handler) / removeEventListener(event, handler) |
| 事件对象 | Events |
ABI 形态:opaque handle + 返回 int 错误码 + out 参数;句柄:im_client_t*;命名:im_<domain>_<action>。
常量
该绑定以 ABI 常量 / 字符串事件名为主,未单独声明常量枚举;事件名来自 capabilityModel.events。
能力总览
| 能力域 | 操作数 | 功能页 |
|---|---|---|
| 连接与监听 | 7 | 建立连接、连接监听 |
| 消息 | 26 | 发送消息、接收消息、消息管理、已读回执、输入状态、消息进阶 |
| 会话 | 22 | 历史消息、会话列表、未读数、草稿、置顶与免打扰、会话标签与分组、会话删除与类型免打扰 |
| 用户 | 10 | 用户资料、在线状态、在线状态订阅与推送令牌 |
| 好友与黑名单 | 11 | 好友列表、好友请求、黑名单 |
| 群组 | 20 | 创建群组、群成员、群管理、超级群频道与用户组 |
| 聊天室 | 5 | 加入与退出、聊天室信息 |
| 系统通知 | 1 | 系统通知 |
| 文件上传 | 1 | 文件上传 |
共 103 个语义操作、9 个能力域、29 个功能页;方法名与签名逐项来自 sdk-bindings.json。
快速链接
- 快速开始:5 步完成接入
- 导入 SDK:依赖与制品说明
- 初始化:选项、工厂与幂等语义
- 功能列表:103 个操作分组表
- API 参考:类、枚举与成员签名
- 状态码:客户端与 SDK 错误码
- 更新日志:IDL 冻结修订历史
相关文档
- Native (C ABI) IMKit:UI 组件层(只依赖 IMLib 公开接口)
- 客户端集成总览:IMLib / IMKit 两条路径
- 服务端 API:用户、Token、群组与消息管理
- SDK 体系总览