nonebot

# NoneBot _✨ 跨平台 Python 异步机器人框架 ✨_

license pypi python
cqhttp ding feishu QQ频道
QQ Chat Telegram Channel Discord Server

文档 · 安装 · 开始使用 · 文档打不开?

## 简介 NoneBot2 是一个可扩展的 Python 异步机器人框架,它会对机器人收到的事件进行解析和处理,并以插件化的形式,按优先级分发给事件所对应的事件响应器,来完成具体的功能。 除了起到解析事件的作用,NoneBot 还为插件提供了大量实用的预设操作和权限控制机制。对于命令处理,它更是提供了完善且易用的会话机制和内部调用机制,以分别适应命令的连续交互和插件内部功能复用等需求。 得益于 Python 的 [asyncio](https://docs.python.org/3/library/asyncio.html) 机制,NoneBot 处理事件的吞吐量有了很大的保障,再配合 WebSocket 通信方式(也是最建议的通信方式),NoneBot 的性能可以达到 HTTP 通信方式的两倍以上,相较于传统同步 I/O 的 HTTP 通信,更是有质的飞跃。 ## 特色 NoneBot2 的驱动框架 `Driver` 以及通信协议 `Adapter` 均可**自定义**,并且可以作为插件进行**替换/添加**! 目前 NoneBot2 内置的驱动框架: - [FastAPI](https://fastapi.tiangolo.com/) - [Quart](https://pgjones.gitlab.io/quart/) (异步 Flask) - [aiohttp](https://docs.aiohttp.org/en/stable/) - [httpx](https://www.python-httpx.org/) - [websockets](https://websockets.readthedocs.io/en/stable/) 目前 NoneBot2 官方维护的协议适配: - [OneBot 协议](https://onebot.dev/) (QQ 等) - [Mirai-API-HTTP 协议](https://github.com/project-mirai/mirai-api-http) - [钉钉](https://ding-doc.dingtalk.com/document#/org-dev-guide/elzz1p) - [Telegram](https://core.telegram.org/bots/api) - [飞书](https://open.feishu.cn/document/home/index) - [QQ 频道](https://bot.q.qq.com/wiki/) 更多:[商店](https://v2.nonebot.dev/store.html) ## 即刻开始 ~~完整~~文档可以在 [这里](https://v2.nonebot.dev/) 查看。 懒得看文档?下面是快速安装指南: 1. (可选)使用你喜欢的 Python 环境管理工具创建新的虚拟环境。 2. 使用 `pip` (或其他) 安装 NoneBot 脚手架。 ```bash pip install nb-cli ``` 3. 使用脚手架创建项目 ```bash nb create ``` ## 社区资源 ### 常见问题 - [常见问题解答(FAQ)](https://faq.nonebot.dev/) ### 教程/实际项目/经验分享 - [awesome-nonebot](https://github.com/nonebot/awesome-nonebot) ### 插件 此外,NoneBot2 还有丰富的官方以及第三方现成的插件供大家使用: - [NoneBot-Plugin-Docs](https://github.com/nonebot/nonebot2/tree/master/packages/nonebot-plugin-docs):离线文档至本地使用(别再说文档打不开了!) ```bash nb plugin install nonebot_plugin_docs ``` 或者尝试以下镜像: - [文档镜像(中国境内)](https://nb2.baka.icu) - [文档镜像(Vercel)](https://nonebot2-vercel-mirror.vercel.app) - 其他插件请查看 [商店](https://v2.nonebot.dev/store.html) ## 许可证 `NoneBot` 采用 `MIT` 协议开源,协议文件参考 [LICENSE](./LICENSE)。 ## 贡献 如果你在使用过程中发现任何问题,可以 [提交 Issue](https://github.com/nonebot/nonebot2/issues/new) 或自行 Fork 修改后提交 Pull Request。 如果你要提交 Pull Request,请确保你的代码风格和项目已有的代码保持一致,遵循 [PEP 8](https://www.python.org/dev/peps/pep-0008/) 与 [PEP 484](https://www.python.org/dev/peps/pep-0484/),变量命名清晰,有适当的注释,**并且请以 `dev` 分支作为 Pull Request 目标分支**。 感谢以下开发者对 NoneBot2 的贡献: