/ricq

用 Rust 实现的高性能 QQ 协议库

Primary LanguageRustMozilla Public License 2.0MPL-2.0

RICQ

QQ Android 协议的 Rust 实现,移植于 OICQ

  • ricq:提供异步 API
  • ricq-core:不带 IO 的数据包构造器、解析器(通常用于 FFI)
  • ricq-axum-api:提供 HTTP API 形式的登录接口,配合 ricq-react-ui,只需要开发登录后的逻辑。

如何使用

本项目是协议 Lib,如果需要直接使用,可以参考 examples 中的例子进行开发。

可以配合前端界面 ricq-react-ui 解压 static.zip 后,运行 ricq-axum-api,使用浏览器 F12-Network 查看调用方式。

普通开发者推荐使用 SDK、框架进行开发:

框架 / SDK 语言 说明
rust_proc_qq Rust 模仿rocket
Walle-Q - onebot协议
pbrq - websocket+protobuf协议(附带Web-UI
atri_qq - 加载原生动态库插件,高性能低占用
awr Python 基于 ricq 包装,供 Python 使用的 QQ 无头客户端。

本项目是一个年轻的项目,请使用 Nightly 工具链构建本项目哦(正经人谁用 Stable 啊)

相关项目

项目 描述
lomirus/gtk-qq Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4.
a1967629423/esp32c3-rs-qq 在单片机上运行QQ
ricq-react-ui + ricq-axum-api 登录 demo,附带前端 UI

已完成功能 / 开发计划

登录

  • 账号密码登录
  • 二维码登录
  • 验证码提交
  • 设备锁验证
  • 错误信息解析

消息类型

  • 文本
  • 表情
  • At
  • 回复
  • 匿名
  • 骰子
  • 石头剪刀布
  • 图片
  • 语音
  • 长消息(仅支持群聊发送)
  • 合并转发(仅支持群聊发送)
  • 链接分享
  • 小程序(暂只支持 RAW)
  • 短视频
  • 群文件(上传与接收信息)

事件

  • 群消息
  • 好友消息
  • 新好友请求
  • 收到其他用户进群请求
  • 新好友
  • 群禁言
  • 好友消息撤回
  • 群消息撤回
  • 收到邀请进群请求
  • 群名称变更
  • 好友删除
  • 群成员权限变更
  • 新成员进群 / 退群
  • 登录号加群
  • 临时会话消息
  • 群解散
  • 登录号退群(包含踢出)
  • 客户端离线
  • 群提示(戳一戳 / 运气王等)

主动操作

为防止滥用,将不支持主动邀请新成员进群

  • 修改昵称
  • 发送群消息
  • 获取群列表
  • 获取群成员列表
  • 获取好友列表 / 分组
  • 获取好友个性签名
  • 添加 / 删除 / 重命名好友分组
  • 群成员禁言 / 解除禁言
  • 踢出群成员
  • 戳一戳群友
  • 戳一戳好友
  • 设置群管理员
  • 设置群公告
  • 设置群名称
  • 全员禁言
  • 获取群@全体剩余次数
  • 翻译
  • 修改群成员头衔
  • 设置群精华消息
  • 发送好友消息
  • 发送临时会话消息
  • 修改群成员 Card
  • 撤回群消息
  • 撤回好友消息
  • 处理被邀请加群请求
  • 处理加群请求
  • 处理好友请求
  • 删除好友
  • 获取陌生人信息
  • 设置在线状态
  • 修改个人资料
  • 修改个性签名
  • 获取群文件下载链接
  • 获取群荣誉(龙王 / 群聊火焰等)
  • 群成员邀请

敏感操作

由于 QQ 钱包支付用户服务协议, 将不提供一切有关 QQ 钱包的功能。

4.13 您不得利用本服务实施下列任一的行为:
(9) 侵害 QQ 钱包支付服务系統;

  • QQ 钱包协议(收款 / 付款等)