模块一览
分层理解
从使用视角看,simbot4 的模块通常可以分为下面几层:
simbot-api标准 API。定义
Application、Bot、Event、Message、Plugin、Component、Resource等核心抽象,本身不提供任何具体平台实现。核心实现库
主要是
simbot-core与simbot-core-spring-boot-starter, 负责把simbot-api里的抽象真正运行起来。公共基础库
位于
simbot-commons/*,提供ID、时间戳、集合工具、原子类型、SuspendReserve、状态循环等跨模块复用能力。扩展库与周边库
例如
simbot-extension-continuous-session、simbot-logger、simbot-quantcat-common、simbot-test等。组件库
平台能力由组件库提供。官方组件通常都在各自独立仓库维护与发布, 这里只按它们的模块结构介绍职责边界。
标准 API 与核心实现
标准 API
- simbot-api
标准库、抽象层。
定义能力接口:
SendSupport、ReplySupport、DeleteSupport等。定义运行时核心:
Application、Bot、BotManager、EventDispatcher。定义通用模型:
Actor、Guild、ChatGroup、Contact、Message、Resource。JVM 侧还提供 Java 友好桥接,例如
launchApplicationAsync(...)、launchApplicationBlocking(...)、EventListeners.block(...)等。
- simbot-core
核心实现库。
提供
SimpleApplication、SimpleEventDispatcher等基础实现。适合希望直接控制组件安装、Bot 注册和事件监听流程的场景。
大多数组件页中的“核心库使用方式”都是以它为基础。
- simbot-core-spring-boot-starter
Spring Boot 3 Starter。
为 Spring Boot 3 / Java 17+ 提供自动装配与注解驱动集成。
常用于
@EnableSimbot、@Listener、Bot 配置文件等开发方式。
- simbot-core-spring-boot-starter-common
Spring Boot Starter 公共支持模块。
承载
love.forte.simbot.spring.common下的通用类型、异常与配置模型。同时被 Starter 3 与 Starter 2 复用。
通常由两个 Starter 传递引入,不需要单独依赖。
- simbot-core-spring-boot-starter-v2
Spring Boot 2 Starter。
面向仍停留在 Spring Boot 2.x 的项目。
作用与 Starter 3 类似,但依赖的 Spring 生态版本不同。
公共基础库
这些模块大多不是“必须手动安装”的使用入口, 但它们构成了文档中很多基础概念的真实来源。
- simbot-common-core
公共核心工具库。
ID/UUIDAsync协程工具与
DispatchersServices文本、弱引用、属性容器等
- simbot-common-time
时间戳与时间单位相关支持。
Timestamp多平台时间实现
- simbot-common-collection
跨平台集合与并发容器工具。
ConcurrentMap队列工具
Flow相关集合辅助
- simbot-common-atomic
跨平台原子类型支持。
- simbot-common-streamable
Streamable抽象支持。- simbot-common-stage-loop
阶段循环状态机支持。
- simbot-common-suspend-runner
Java 友好桥接相关支持。
SuspendReserveSuspendReserves@ST/@STP
- simbot-common-annotations
通用标记性注解。
- simbot-common-apidefinition
通用 API 定义模型,主要用于 REST API 风格封装。
- simbot-common-ktor-inputfile
基于 Ktor 的
InputFile上传抽象。
扩展与周边
- simbot-extension-continuous-session
持续会话扩展。
适合实现多轮会话、流程式对话、事件上下文延续等场景。
- simbot-logger / simbot-logger-slf4j2-impl
日志抽象与 JVM 上的 SLF4J 2.x 实现。
- simbot-quantcat-common
注解驱动监听能力支持。
@Listener、参数绑定、过滤、拦截等开发体验与它密切相关。- simbot-test
测试工具模块,提供测试用 Bot、组件、事件和消息实现。
官方组件库
官方组件一般各自独立发版。 普通应用开发者最常直接依赖的是它们的 *-core 模块。
QQ 组件
仓库: simple-robot/simbot-component-qq-guild
- simbot-component-qq-guild-api
QQ 机器人官方 API 的底层封装。
- simbot-component-qq-guild-stdlib
基于 API 的低限度 Bot 实现与事件处理支持。
- simbot-component-qq-guild-core
真正作为 simbot 组件使用的核心模块,通常也是普通开发者应直接使用的模块。
- simbot-component-qq-guild-internal-ed25519
内部签名支持模块,一般无需直接使用。
KOOK 组件
仓库: simple-robot/simbot-component-kook
- simbot-component-kook-api
KOOK API 封装。
- simbot-component-kook-stdlib
Bot 基础实现与事件处理支持。
- simbot-component-kook-core
完整的 simbot KOOK 组件模块,普通开发通常直接使用它。
OneBot 组件
仓库: simple-robot/simbot-component-onebot
- simbot-component-onebot-common
OneBot 通用定义。
- simbot-component-onebot-v11-common
OneBot v11 通用模型与共享定义。
- simbot-component-onebot-v11-event
OneBot v11 原始事件数据模型。
- simbot-component-onebot-v11-message
OneBot v11 原始消息段数据模型。
- simbot-component-onebot-v11-core
OneBot v11 的核心组件实现,也是普通开发者最常用的模块。
Telegram 与 Discord
它们仍属于早期或预告性质的组件页。 如果没有明确的源码模块、 Module.md 、构建脚本与 API 定义作为依据, 则应当把它们视为占位入口,而不是已经完整可用的官方组件实现说明。
如何选模块
如果你只是想开发一个应用,通常按下面的顺序选择即可:
先选一个
Application实现:simbot-core或 Spring Boot starter。再选一个或多个组件核心模块,例如
simbot-component-kook-core。如果需要注解监听体验,再关注 Spring Boot starter 与
quantcat相关章节。只有在你明确知道自己在做更底层封装时,才需要直接依赖
api或stdlib模块。
如果你是在开发组件、扩展或公共库, 还会接触 simbot-gradle-suspendtransforms 一类构建辅助模块; 这类模块更适合在 组件库开发 与 编译器插件 中阅读, 而不是作为普通应用运行时依赖来选择。