rongcloud

Crates.iorongcloud
lib.rsrongcloud
version0.1.0
created_at2026-01-16 08:33:26.769616+00
updated_at2026-01-16 08:33:26.769616+00
descriptionRongCloud IM Server SDK for Rust
homepage
repositoryhttps://github.com/fairwic/rongcloud
max_upload_size
id2048176
size248,123
方伟聪 (fairwic)

documentation

README

Rongcloud Rust SDK

License: MIT Rust

融云(RongCloud)IM 服务端 API 的 Rust 实现。

✨ 特性

  • 🦀 纯 Rust 实现 - 高性能、内存安全的异步 API 客户端
  • 🌍 多地域支持 - 支持北京、新加坡、北美等多个数据中心节点
  • 📦 丰富的消息类型 - 文本、图片、语音、文件、通知等多种内置消息类型
  • 🔐 完整的用户管理 - 注册、封禁、黑名单、白名单等完整用户功能
  • 💬 多会话类型 - 单聊、群聊、聊天室、系统通知全覆盖
  • 🚀 异步优先 - 基于 Tokio 的全异步设计

📦 安装

将以下内容添加到你的 Cargo.toml 文件中:

[dependencies]
rongcloud = { git = "https://github.com/your-username/rongcloud-rust-sdk" }

🚀 快速开始

use rongcloud::{RongCloud, RongCloudConfig, Region};

#[tokio::main]
async fn main() {
    // 创建配置
    let config = RongCloudConfig::new("your_app_key", "your_app_secret")
        .with_region(Region::Beijing);

    // 创建客户端
    let client = RongCloud::new(config);

    // 注册用户并获取 Token
    let result = client.user_register("user_001", "张三", "https://example.com/avatar.jpg").await;

    match result {
        Ok(response) => {
            println!("用户 Token: {}", response.data.token);
        }
        Err(e) => {
            eprintln!("注册失败: {:?}", e);
        }
    }
}

📚 功能模块

用户管理

功能 方法 描述
注册用户 user_register 注册用户并获取 Token
更新用户信息 user_update 修改用户名称和头像
获取用户信息 user_info 查询用户详细信息
封禁用户 user_block 封禁指定用户
解除封禁 user_unblock 解除用户封禁
查询封禁列表 user_block_query 获取已封禁的用户列表
检查在线状态 user_check_online 检查用户是否在线

黑白名单管理

功能 方法 描述
添加黑名单 user_blacklist_add 将用户添加到黑名单
移除黑名单 user_blacklist_remove 从黑名单中移除用户
查询黑名单 user_blacklist_query 获取黑名单列表
添加白名单 user_whitelist_add 将用户添加到白名单
移除白名单 user_whitelist_remove 从白名单中移除用户
查询白名单 user_whitelist_query 获取白名单列表

消息发送

use rongcloud::api::message::{PrivateMessage, GroupMessage, SystemMessage};
use rongcloud::messages::TextMessage;

// 发送单聊消息
let text = TextMessage::new("Hello World!", "附加内容");
let msg = PrivateMessage::new("sender_id", text.object_name(), text.to_json())
    .to_user("receiver_id")
    .push_content("你收到了一条新消息");

client.send_private_message(&msg).await?;

// 发送群聊消息
let group_msg = GroupMessage::new("sender_id", "RC:TxtMsg", content)
    .to_group("group_id")
    .is_mentioned(1);  // @所有人

client.send_group_message(&group_msg).await?;

// 发送系统通知
let sys_msg = SystemMessage::new("system", "RC:TxtMsg", content)
    .to_user("user_id");

client.send_system_message(&sys_msg).await?;

群组管理

功能 方法 描述
创建群组 group_create 创建新群组
解散群组 group_dismiss 解散指定群组
加入群组 group_join 用户加入群组
退出群组 group_quit 用户退出群组
查询群成员 group_user_query 获取群组成员列表
禁言群成员 group_user_gag_add 禁言指定群成员
取消禁言 group_user_gag_rollback 取消群成员禁言
全体禁言 group_ban_add 设置群组全体禁言

聊天室管理

功能 方法 描述
创建聊天室 chatroom_create 创建新聊天室
销毁聊天室 chatroom_destroy 销毁指定聊天室
查询聊天室 chatroom_get 获取聊天室信息
保活聊天室 chatroom_keepalive_add 设置聊天室保活

好友管理

功能 方法 描述
添加好友 friend_add 添加好友关系
删除好友 friend_delete 解除好友关系
获取好友列表 friend_get 查询用户好友列表
检查好友关系 friend_check 检查两用户是否为好友

敏感词管理

功能 方法 描述
添加敏感词 sensitiveword_add 添加消息敏感词
批量添加 sensitiveword_batch_add 批量添加敏感词
删除敏感词 sensitiveword_delete 移除敏感词
查询敏感词 sensitiveword_list 获取敏感词列表

📱 消息类型

SDK 内置多种标准消息类型:

消息类型 类名 ObjectName
文本消息 TextMessage RC:TxtMsg
图片消息 ImageMessage RC:ImgMsg
语音消息 VoiceMessage RC:VcMsg
文件消息 FileMessage RC:FileMsg
通知消息 NotificationMessage RC:NtfMsg

自定义消息

use serde::Serialize;

#[derive(Serialize)]
struct CustomMessage {
    #[serde(rename = "type")]
    msg_type: String,
    data: String,
}

impl CustomMessage {
    fn object_name() -> &'static str {
        "App:CustomMsg"
    }
}

🌍 多地域配置

use rongcloud::{RongCloudConfig, Region};

// 北京节点(默认)
let config = RongCloudConfig::new("app_key", "app_secret")
    .with_region(Region::Beijing);

// 新加坡节点
let config = RongCloudConfig::new("app_key", "app_secret")
    .with_region(Region::Singapore);

// 北美节点
let config = RongCloudConfig::new("app_key", "app_secret")
    .with_region(Region::NorthAmerica);

⚠️ 错误处理

use rongcloud::RongCloudError;

match client.user_register("user_id", "name", "avatar_url").await {
    Ok(response) => {
        if response.code == 200 {
            println!("成功: {:?}", response.data);
        } else {
            println!("业务错误码: {}", response.code);
        }
    }
    Err(RongCloudError::RequestFailed(msg)) => {
        eprintln!("请求失败: {}", msg);
    }
    Err(RongCloudError::SerializationError(e)) => {
        eprintln!("序列化错误: {}", e);
    }
    Err(e) => {
        eprintln!("其他错误: {:?}", e);
    }
}

🔧 配置项

配置 方法 说明
地域 with_region() 设置数据中心节点
超时 with_timeout() 设置请求超时时间
自定义域名 with_custom_domain() 使用自定义 API 域名

🛠️ 开发

# 运行测试
cargo test

# 检查代码
cargo clippy

# 格式化
cargo fmt

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

🔗 相关链接

📊 API 覆盖率

本 SDK 覆盖了融云服务端 API 的主要功能,包括:

  • ✅ 用户管理服务
  • ✅ 用户黑/白名单服务
  • ✅ 好友管理(信息托管)
  • ✅ 消息管理
  • ✅ 群组管理
  • ✅ 群组禁言服务
  • ✅ 聊天室管理
  • ✅ 内容审核(敏感词)
  • ✅ 推送服务

更多 API 正在持续开发中...

Commit count: 0

cargo fmt