botrs 0.2.8

A Rust QQ Bot framework based on QQ Guild Bot API
Documentation
---
# https://vitepress.dev/reference/default-theme-home-page
layout: home

hero:
  name: "BotRS"
  text: "Rust QQ 机器人框架"
  tagline: "基于 QQ 频道机器人 API 的类型安全、高性能、易于使用的 Rust 框架"
  # image:
  #   src: /logo.svg
  #   alt: BotRS
  actions:
    - theme: brand
      text: 开始使用
      link: /zh/guide/introduction
    - theme: alt
      text: 在 GitHub 查看
      link: https://github.com/YinMo19/botrs

features:
  - icon: 🛡️
    title: 类型安全
    details: 完全类型化的 API,编译时捕获错误。Rust 的所有权系统确保内存安全,防止常见的编程错误。

  - icon: ⚡
    title: 高性能
    details: 基于 Tokio 异步运行时,支持高并发。高效的 WebSocket 处理和带连接池的 HTTP 客户端。

  - icon: 🔧
    title: 易于使用
    details: 直观的 API 设计配有清晰的文档。用最少的样板代码即可在几分钟内启动机器人。

  - icon: 🎯
    title: 事件驱动架构
    details: 通过清洁的事件处理器系统响应各种 QQ 频道事件。支持消息、频道、成员等多种事件。

  - icon: 📝
    title: 丰富的消息支持
    details: 发送文本、嵌入内容、文件、Markdown、键盘和交互式消息。完全支持所有 QQ 频道消息类型。

  - icon: 🔄
    title: Intent 系统
    details: 对事件订阅进行细粒度控制。通过只接收机器人需要的事件来优化性能。

  - icon: 🌐
    title: WebSocket 网关
    details: 实时事件处理,自动重连和心跳处理。可靠的连接管理。

  - icon: 📚
    title: 全面的 API
    details: 完整覆盖 QQ 频道机器人 API,使用结构化参数系统。告别令人困惑的多个 None 参数。

  - icon: 🏗️
    title: 结构化参数
    details: 清洁、可读的消息 API,采用构建器模式。类型安全的参数构造和默认值。
---

## 什么是 BotRS?

BotRS 是为 Rust 编程语言设计的异步框架,专门用于构建 QQ 频道机器人。它提供了创建交互式机器人应用程序所需的基本构建块,这些应用程序可以处理消息、管理频道,并实时响应各种事件。

从高层次来看,BotRS 提供了几个主要组件:

- **异步运行时集成**:基于 Tokio 构建,可处理数千个并发连接
- **类型安全的 API 绑定**:为所有 QQ 频道机器人 API 端点提供完整的 Rust 类型定义
- **事件驱动架构**:用于响应频道事件的清洁事件处理器系统
- **丰富的消息支持**:发送文本、嵌入内容、文件和交互式内容
- **WebSocket 网关**:实时事件处理,自动连接管理

## BotRS 在您项目中的作用

在构建 QQ 频道机器人时,您需要一个能够处理实时消息传递、API 交互和事件处理复杂性的框架。BotRS 作为基础,让您专注于机器人的逻辑,而不是底层基础设施。

该框架处理:

- **连接管理**:自动 WebSocket 重连和心跳处理
- **速率限制**:内置请求节流以遵守 API 限制
- **类型安全**:编译时保证防止运行时错误
- **异步处理**:非阻塞事件处理以获得最大性能
- **错误处理**:带有上下文和恢复选项的全面错误类型

## 快速示例

这是一个响应消息的简单机器人:

```rust
use botrs::{Client, Context, EventHandler, Intents, Message, Ready, Token};

struct MyBot;

#[async_trait::async_trait]
impl EventHandler for MyBot {
    async fn ready(&self, _ctx: Context, ready: Ready) {
        println!("机器人已就绪!登录为:{}", ready.user.username);
    }

    async fn message_create(&self, ctx: Context, message: Message) {
        if let Some(content) = &message.content {
            if content == "!ping" {
                let _ = message.reply(&ctx.api, &ctx.token, "Pong!").await;
            }
        }
    }
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let token = Token::new("你的应用ID", "你的密钥");
    let intents = Intents::default().with_public_guild_messages();
    let mut client = Client::new(token, intents, MyBot, true)?;

    client.start().await?;
    Ok(())
}
```

## 开始使用

准备用 BotRS 构建您的第一个 QQ 频道机器人了吗?请遵循我们的全面指南:

1. **[安装]/zh/guide/installation** - 将 BotRS 添加到您的 Rust 项目
2. **[快速开始]/zh/guide/quick-start** - 在几分钟内创建您的第一个机器人
3. **[配置]/zh/guide/configuration** - 设置您的机器人凭据和选项
4. **[示例]/zh/examples/getting-started** - 探索工作代码示例

## 架构亮点

### 与 Python botpy 的兼容性

BotRS 保持与官方 Python botpy 库的 API 兼容性,使熟悉 Python 生态系统的开发者能够直接迁移。结构化参数系统镜像了 botpy 的方法,同时添加了 Rust 的类型安全优势。

### 性能特性

- **内存高效**:尽可能零拷贝反序列化
- **并发处理**:同时处理多个事件
- **连接池**:重用 HTTP 连接进行 API 调用
- **最小分配**:为高吞吐量场景进行细心的内存管理

### 类型安全保证

Rust 的类型系统防止动态语言中常见的整类错误:

- **编译时验证**:在部署前捕获 API 误用
- **无空指针异常**:Option 类型使空值处理显式化
- **内存安全**:无释放后使用或缓冲区溢出漏洞
- **线程安全**:编译时验证并发访问模式

## 社区和支持

- **[GitHub 仓库]https://github.com/YinMo19/botrs** - 源代码、问题和讨论
- **[文档]https://docs.rs/botrs** - docs.rs 上的完整 API 参考
- **[示例]/zh/examples/getting-started** - 常见用例的工作代码示例
- **[更新日志]/zh/changelog** - 版本历史和破坏性更改

---

*BotRS 是在 MIT 许可证下发布的开源软件。欢迎贡献!*