Avilla
The next-gen framework for IM development.
即刻动身, 踏上寻找第二个故乡的旅程.
Avilla 被定义为 Graia Project
的 "下一代" 框架实现,
通过对 OneBot
, Telegram Bot API
及其他的基于不同即时通讯软件实现的各式对接接口进行总结,
并抽象 Relationship
这一最为基本的模型, 构造了一个理论上可以实现零成本切换对接平台的框架.
该框架目前处于快速迭代状态, API 可能会发生 剧烈 变化, 可能还不适合进行生产性的开发与运维
项目名称取自日本轻小说 《魔女之旅》 的角色 "艾维莉亚(Avilla)".
Roadmap
-
Avilla Protocol
: 对各式常见的行为进行抽象, 并通过可扩展的模型, 实现尽可能的功能可迁移性.-
Network API
: 统一的网络通信兼容层, 全面支持Client
(客户端) 与Service
(服务端) 的通信方式. -
Transformer API
: 模仿dart::io
中的设计, 用于处理获得的二进制信息. -
Resource API
: 对含多媒体内容的消息的抽象. -
Platform API
: 通过与Protocol
协作, 扩展 Avilla Protocol, 使其能用于平台的特有特性. -
Completed Design
: 设计并不完善, 还需要后续提供修改.
-
-
Avilla for OneBot
: 对OneBot
的协议实现.-
Avilla for go-cqhttp
: 对go-cqhttp
的扩展 API 的支持.
-
-
Avilla for Telegram
: 对Telegram Bot API
的协议实现. -
Avilla for mirai-api-http
: 对mirai-api-http
的支持. - And more...
我们的愿景
创造出比这之前还要更加具有潜力和创造性的作品, 借此有力促进社区的发展, 助力社区的艺术家们 (Developers & Artists) 创作出更加精彩的作品.
相关项目
星座的光芒是由一个个星点共同组成的, 震撼人心的作品也绝不会是一个人的功绩.
没有这些项目, Avilla 的实现就无从谈起.
排名不分顺序, 可能有许遗漏, 这里仅列出部分较为重要的项目.
Nonebot Team
:Nonebot v2
: 优秀的框架, 众多灵感正来源于此.(例如 OneBot 实现的部分)aiocqhttp
: 开发 Avilla for OneBot 时的参考实现.
Mamoe Technologies
:mirai
: The beginning, 真正做到了 "功施至今".mirai-api-http
: python-mirai 项目曾一直服务的对象, 个人认为尚具有极大的发展空间.
OneBot Spec
: Avilla for OneBot 所依据的实现规范, 同时也是 Avilla Protocol 设计时的参考之一.go-cqhttp
: 可能是现在运用最为广泛的 OneBot v11 实现.
无论如何, Avilla 都是 Graia Project 下的一个子项目, 用到了其中的以下项目:
Broadcast Control
: 事件系统实现, 最为锋利的魔剑(Magic Sword).
衷心感谢这些以及其他未被提及的项目.
开源协议
Avilla 和 Avilla for OneBot, 这二者都使用 MIT 作为开源协议, 但若引用到 GPL/AGPL/LGPL 等的项目, 仍需要遵循相关规则.