# simpler-robot **Repository Path**: simple-robot-project/simpler-robot ## Basic Information - **Project Name**: simpler-robot - **Description**: 一个基于Kotlin协程的bot风格Kotlin多平台事件调度框架,异步高效、Java友好♥ - **Primary Language**: Kotlin - **License**: GPL-3.0 - **Default Branch**: v4-dev - **Homepage**: https://simbot.forte.love - **GVP Project**: No ## Statistics - **Stars**: 50 - **Forks**: 7 - **Created**: 2020-10-11 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: task-schedule **Tags**: Kotlin, Bot, kotlin-multiplatform, simbot ## README
simbot logo

- Simple Robot -

~ simbot v4 ~
GitHub    |    Gitee
> Thanks to the members of the CatCode development team for creating the simbot logo <
> Passing by? Don't forget to light up a ⭐~ <
release release doc Qodana Ask DeepWiki
stars forks watchers repo-size code-size issues top-language copying
[中文](README.md) ## Introduction **`Simple Robot`** is a high-performance asynchronous event scheduling framework in the **Bot style** that is built on [Kotlin coroutines](https://github.com/Kotlin/kotlinx.coroutines) and [Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) (hereinafter referred to as simbot), delivering efficient asynchrony and Java-friendly APIs. simbot provides a unified asynchronous API and an intuitive design style to help you create **Bot-style** event-driven applications quickly and efficiently. It is mainly used to integrate with a wide variety of bot application platforms/frameworks, and it already offers several component library implementations. simbot's **platform capabilities** are component-driven. Install different component libraries to gain support for different features. For example, using KOOK and QQ Guild in simbot: ```Kotlin suspend fun main() { launchSimpleApplication { config() } .joinWith { module() } } fun ApplicationFactoryConfigurer<*, *, *>.config() { // Install the KOOK and QQ Guild component libraries useKook() useQQGuild() } /** * Configure and apply the built `Application` */ suspend fun Application.module() { registerBots() registerListeners() } /** * Register the required bots */ suspend fun Application.registerBots() { // Register a KOOK bot so KOOK-related events can be handled afterwards kookBots { register(...) { ... }.start() } // Register a QQ Guild bot so QQ Guild-related events can be handled afterwards qqGuildBots { register(...) { ... }.start() } } fun Application.registerListeners() { listeners { // Register an event handler // ChatChannelMessageEvent is a generic type defined by the simbot API representing all sub-channel message events // This includes QQ Guild public channel message events and KOOK channel message events listen { println("context: $this") println("context.event: $event") // Return the event handling result EventResult.empty() } // Register another event handler // Explicitly listen for QQ Guild public channel message events // Using process eliminates the need to return a value process { println("context: $this") println("context.event: $event") } // Register one more event handler // Explicitly listen for KOOK channel message events // Using process eliminates the need to return a value process { println("context: $this") println("context.event: $event") } } } ``` ## Documentation & Guides - [Organization Homepage](https://github.com/simple-robot/) Learn more about components, documentation, community, and more! - [Communities](https://simbot.forte.love/communities.html) Community information is also provided in the documentation. - [Application Manual][doc-homepage] - [Documentation Portal & API reference](https://docs.simbot.forte.love) ## Support Us Lighting up a **✨star🌟** for us is the greatest motivation and support for keeping the project going! - Read the [**Contribution Guide**](docs/CONTRIBUTING_CN.md) to learn how you can contribute! - Join the conversation with others or the simbot development team via the [**Discussions**][discussions]. - If you have created an awesome open-source project based on simbot, feel free to share it via [ISSUES][issues] or [Discussions][discussions] so we can showcase your cool project in the gallery. ## Contact Us - To report issues, make suggestions, or ask questions, please use [**ISSUES**][issues]. - To communicate with the development team or other developers, head to [**Discussions**][discussions]. - Visit the [GitHub Organization Homepage](https://github.com/simple-robot/) for more **community information**. [pr]: https://github.com/simple-robot/simpler-robot/pulls [issues]: https://github.com/simple-robot/simpler-robot/issues [discussions]: https://github.com/orgs/simple-robot/discussions ## Special Thanks jetbrains Thanks to [JetBrains][jetbrains] for providing the team with free licenses. We also encourage everyone to support [JetBrains][jetbrains], its products, and genuine software. [jetbrains]: https://www.jetbrains.com/?from=simpler-robot ## Stars! [![Star History Chart](https://api.star-history.com/svg?repos=simple-robot/simpler-robot&type=Date)](https://star-history.com/#simple-robot/simpler-robot&Date) > powered by [Star History](https://star-history.com) ## License Simple Robot is open-sourced under the [LGPLv3](https://www.gnu.org/licenses/#LGPL) license. ``` This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public License for more details. You should have received a copy of the Lesser GNU General Public License along with this program. If not, see . ``` [doc-homepage]: https://simbot.forte.love/