No project description provided
Project description
Avilla
The next-gen framework for IM development.
即刻动身, 踏上寻找第二个故乡的旅程.
Avilla 是 Graia Project
的 "下一代" 框架实现,
通过对 OneBot
, Telegram Bot API
及其他的基于不同即时通讯软件实现的各式对接接口,
以及其他具有相应概念的 "异步消息流" 实例进行总结, 抽象其中最为基本的各式模型, 构造了一个理论上可以实现零成本切换对接平台的框架.
该框架目前处于快速迭代状态, API 可能会发生 剧烈 变化, 可能还不适合进行生产性的开发与运维
项目名称取自日本轻小说 《魔女之旅》 的角色 "艾维莉亚(Avilla)".
Roadmap
Avilla Protocol
: 对各式常见的行为进行抽象, 并通过可扩展的模型, 实现尽可能的功能可迁移性.- 使用 Launart 调度启动任务与应用实例的生命周期;
- 创新性的 Relationship 模型, 携带有进行任意操作所需的基本信息, 规范化行为模式与实现的编写;
- 使用
Selector
, 实现了信息与对象本身的解耦, 减少平台实现的负担; - 规范化的
Resource
抽象优化了对不同资源与资源类型的操作, 尤其是其内容的获取与其元信息的操作; - 规范各式请求为
Request
; - 将各式元信息放缩为各个最小功能单元及其之间的组合, 不失表现性和可扩展性;
- 使用各式如
Broadcast Control
的注入入口, 极大简化了接口的使用; - 复用来自
Amnesia
的通用接口;
- And more...
from creart import create
from graia.amnesia.builtins.aiohttp import AiohttpService
from graia.broadcast import Broadcast
from avilla.core import Avilla, MessageReceived, Relationship, Selector
from avilla.elizabeth.connection.config import WebsocketClientConfig
from avilla.elizabeth.protocol import ElizabethProtocol
broadcast = create(Broadcast)
avilla = Avilla(broadcast, [
ElizabethProtocol(
WebsocketClientConfig("bot-account", "mah-verify-code")
)
], [AiohttpService()])
@broadcast.receiver(MessageReceived)
async def on_message_received(event: MessageReceived, rs: Relationship):
if Selector.fragment().as_dyn().group("*").member("master-account").match(rs.ctx):
await rs.send_message("Hello, Avilla!")
avilla.launch_manager.launch_blocking(loop=broadcast.loop)
部件发布情况
代号 | 协议 | 开发进度 | PyPI | 维护者 |
---|---|---|---|---|
Core | - | Alpha | Official | |
Elizabeth | mirai-api-http |
WIP | Official | |
- | OneBot v11 |
WIP | Official | |
- | OneBot v12 |
Draft | Official | |
- | Telegram |
Draft | - | |
Nightcord | Discord Bots |
Draft | Official |
我们的愿景
创造出比这之前还要更加具有潜力和创造性的作品, 借此有力促进社区的发展, 助力社区的艺术家们 (Developers & Artists) 以更高的效率, 基于更完善的底层, 创作出更加精彩的作品.
相关项目
星座的光芒是由一个个星点共同组成的, 任何优秀的作品都绝不会是一个人的功绩.
而若是没有这些项目, Avilla 的实现就无从谈起.
排名不分顺序, 可能有许遗漏, 这里仅列出部分较为重要的项目.
-
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 实现的项目仍需要遵循相关规则.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for avilla_core-1.0.0rc3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8aed13ccb8f1368acbfe27949cc8d74ec0e609a8c752f7b8c0b663f3eb6c5904 |
|
MD5 | fb0f4dcbe641c50fe1f7556d23d76da9 |
|
BLAKE2b-256 | 4fa88e8e6c5beb342b16b06a16f8aac480956f48686aeb9f136e85082c06a00f |