Avilla 是 Graia Project
的 "下一代" 框架实现,
通过对 OneBot
, Telegram Bot API
及其他的基于不同即时通讯软件实现的各式对接接口,
以及其他具有相应概念的 "异步消息流" 实例进行总结, 抽象其中最为基本的各式模型, 构造了一个理论上可以实现零成本切换对接平台的框架.
该框架目前处于快速迭代状态, API 可能会发生 剧烈 变化, 可能还不适合进行生产性的开发与运维
项目名称取自日本轻小说 《魔女之旅》 的角色 "艾维莉亚(Avilla)".
Docs |
---|
担心可用性? 我们同样提供了一些核心的非平台依赖实现, 例如
TextCommand
, 这些组件仅要求平台实现最基本的交互实现, 剩下的一切交给 Avilla 处理!
Amnesia
, Commander
, Twilight
, Alconna
或是基于 Launart
编写的各式扩展, 可以直接与 Avilla 协同而无需任何迁移成本.from avilla.core import Avilla, Context, MessageReceived
from avilla.console.protocol import ConsoleProtocol
avilla = Avilla()
avilla.apply_protocols(ConsoleProtocol())
@avilla.listen(MessageReceived)
async def on_message_received(cx: Context, event: MessageReceived):
await cx.scene.send_message("Hello, Avilla!")
avilla.launch()
代号 | 对接平台 | 协议 | 开发进度 | PyPI | 维护者 | 开源协议 |
---|---|---|---|---|---|---|
Core | - | - | Alpha | Official | MIT | |
Console | 终端环境 | Console |
Alpha | Official | MIT | |
Elizabeth | Tencent QQ | mirai-api-http |
Alpha | Official | AGPLv3 | |
Onebot 11 | 多平台支持 | OneBot v11 |
WIP | Official | - | |
QQ API | Tencent QQ / QQ-Guild | QQ / QQ-Guild Official API |
WIP | Official | MIT | |
Red | Tencent QQNT | Red Protocol |
WIP | Official | MIT | |
Satori | 多平台支持 | Satori Protocol (v1) |
WIP | Official | MIT | |
Telegram | Telegram | Telegram |
Draft | - | - | |
Nightcord | Discord | Discord Bots |
Draft | - | - | |
Kook | Kook | Kook |
Draft | - | - | |
OneBot 12 | 多平台支持 | OneBot v12 |
Planned | - | - | - |
创造出比这之前还要更加具有潜力和创造性的作品, 借此有力促进社区的发展, 助力社区的艺术家们 (Developers & Artists) 以更高的效率, 基于更完善的底层, 创作出更加精彩的作品.
Nonebot Team
:
Nonebot v2
: 同样是社区中赫赫有名的优秀框架.Arclet Project
: 在借鉴的基础上, 还进行了难能可贵的优秀创新, 仍在不断成长的框架实现.Mamoe Technologies
:
OneBot Spec
: Avilla for OneBot 所依据的实现规范, 同时也是 Avilla Protocol 设计时的参考之一.go-cqhttp
: 可能是现在运用最为广泛的 OneBot v11 & v12 实现.无论如何, Avilla 都是 Graia Project 下的一个子项目, 以下项目均在不同层面上支持了 Avilla 的开发:
Broadcast Control
: 事件系统实现, 最为锋利的魔剑(Magic Sword).Ariadne
: 继承了前作的衣钵, 在 Avilla 尚未成熟之际撑起大梁的后续作品, 同样进行了可贵的创新.若非特殊说明, Avilla 及其子包默认使用 MIT 作为开源协议, 但如果你若引用到了使用 GPL/AGPL/LGPL 等具有传染性开源协议的项目, 无论是对 Avilla 实现或是使用了相应 Avilla 实现的项目仍需要遵循相关规则.