Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lz1998/ricq

Rust 高性能 QQ 协议(原RS-QQ)。Linux-musl运行内存1.6MB。
https://github.com/lz1998/ricq

bot coolq mirai oicq qq qq-bot qq-protocol qqbot qqrobot rs-qq rust

Last synced: 6 days ago
JSON representation

Rust 高性能 QQ 协议(原RS-QQ)。Linux-musl运行内存1.6MB。

Awesome Lists containing this project

README

        

# RICQ

![](https://socialify.git.ci/lz1998/ricq/image?forks=1&issues=1&language=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Dark)

QQ Android 协议的 Rust 实现,移植于 [OICQ](https://github.com/takayama-lily/oicq)。

- [ricq](https://crates.io/crates/ricq):提供异步 API
- [ricq-core](https://crates.io/crates/ricq-core):不带 IO 的数据包构造器、解析器(通常用于 FFI)
- [ricq-axum-api](https://github.com/lz1998/ricq/tree/master/examples/ricq-axum-api):提供 HTTP API 形式的登录接口,配合 [ricq-react-ui](https://github.com/lz1998/ricq-react-ui),只需要开发登录后的逻辑。

## 如何使用

本项目是协议 Lib,如果需要直接使用,可以参考 [examples](https://github.com/lz1998/ricq/tree/master/examples) 中的例子进行开发。

可以配合前端界面 [ricq-react-ui](https://github.com/lz1998/ricq-react-ui/releases) 解压 static.zip 后,运行 [ricq-axum-api](https://github.com/lz1998/ricq/blob/master/examples/ricq-axum-api/src/bin/main.rs#L125),使用浏览器 F12-Network 查看调用方式。

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

| 框架 / SDK | 语言 | 说明 |
| ---- | ---- | ---- |
| [rust_proc_qq](https://github.com/niuhuan/rust_proc_qq) | Rust | 模仿rocket |
| [Walle-Q](https://github.com/abrahum/walle-q) | - | onebot协议 |
| [pbrq](https://github.com/ProtobufBot/pbrq) | - | websocket+protobuf协议(附带[Web-UI](https://github.com/ProtobufBot/pbrq-react-ui)) |
| [atri_qq](https://github.com/LaoLittle/atri_qq) | - | 加载原生动态库插件,高性能低占用 |
| [awr](https://github.com/Wybxc/awr) | Python | 基于 ricq 包装,供 Python 使用的 QQ 无头客户端。 |

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

## 相关项目

| 项目 | 描述 |
| ---- | ---- |
| [lomirus/gtk-qq](https://github.com/lomirus/gtk-qq) | Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4. |
| [a1967629423/esp32c3-rs-qq](https://github.com/a1967629423/esp32c3-rs-qq) | 在单片机上运行QQ |
| [ricq-react-ui](https://github.com/lz1998/ricq-react-ui) + [ricq-axum-api](https://github.com/lz1998/ricq/blob/master/examples/ricq-axum-api/src/bin/main.rs#L125) | 登录 demo,附带前端 UI |

## 已完成功能 / 开发计划

### 登录

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

### 消息类型

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

### 事件

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

### 主动操作

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

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

### 敏感操作

> 由于 [QQ 钱包支付用户服务协议](https://www.tenpay.com/v2/html5/basic/public/agreement/protocol_mqq_pay.shtml), 将不提供一切有关 QQ 钱包的功能。

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

- [ ] ~~QQ 钱包协议(收款 / 付款等)~~