avilla-core


Nameavilla-core JSON
Version 1.0.0a27 PyPI version JSON
download
home_pagehttps://github.com/GraiaProject/Avilla
SummaryNone
upload_time2024-11-05 09:08:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

# Avilla

_The next-gen framework for IM development._

> 即刻动身, 踏上寻找第二个故乡的旅程.

</div>

<p align="center">
  <img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="code_style" />
  <img src="https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336" />

</p>

Avilla 是 `Graia Project` 的 "下一代" 框架实现,
通过对 [ `OneBot` ](https://github.com/botuniverse/onebot), [ `Telegram Bot API` ](https://core.telegram.org/bots) 及其他的基于不同即时通讯软件实现的各式对接接口,
以及其他具有相应概念的 "异步消息流" 实例进行总结, 抽象其中最为基本的各式模型, 构造了一个理论上可以实现零成本切换对接平台的框架.

**该框架目前处于快速迭代状态, API 可能会发生 _剧烈_ 变化, 可能还不适合进行生产性的开发与运维**

> 项目名称取自日本轻小说 《魔女之旅》 的角色 "艾维莉亚(Avilla)".

|Docs|[![docs](https://img.shields.io/badge/docs%20on-readthedocs-black)](https://graia.readthedocs.io/)|[![docs](https://img.shields.io/badge/docs%20on-netlify-informational)](https://graia.netlify.app/)|[![docs](https://img.shields.io/badge/docs%20on-cloudflare-orange)](https://graia.pages.dev/)|
|:-:|:-:|:-:|:-:|

## Notable Features

 - **原生跨平台**: 开创性的 Relationship 操作模型, 配合最小功能单元, 行为扩展等诸多独特设计, 无论是简单的消息收发还是平台设计的独特交互, Avilla 都能处理地得心应手.
 - **原生多账号**: Avilla 在设计之初, 就考虑了同时管理多个账号, 甚至是多个平台上的多个账号这些问题, 并加以研究与解决. 而现在, 账号管理本应如此简单便捷而收放自如.
 - **一次编写, 多平台可用**: 得益于 Avilla 的强大抽象, 开发者只需面向 Avilla 就能完成核心业务的开发, 显著的减少了维护成本.
 - **平台特性友好**: Avilla 以 Activity, Reaction, Extension 等诸项设计, 使得开发者在运用平台特性的方式更加规范而不失表达性. 担心平台间特性的不通用? 你可以同时为多个平台编写不同的特性用例, Avilla 会自动应用可用的适配, 不改动核心逻辑的同时保证基本特性的可用!
  > 担心可用性? 我们同样提供了一些核心的非平台依赖实现, 例如 `TextCommand`, 这些组件仅要求平台实现最基本的交互实现, 剩下的一切交给 Avilla 处理!
 - **现有基建兼容**: 得益于 `Amnesia`, `Commander`, `Twilight`, `Alconna` 或是基于 `Launart` 编写的各式扩展, 可以直接与 Avilla 协同而无需任何迁移成本.
 - **高可伸缩性**: Avilla 既支持单文件使用, 亦支持基于 Graia Saya 驱动的模块系统编写应用.

## Quick Start

```py
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](avilla/core)       |           -           |              -               |  **Alpha**  |       [![image](https://img.shields.io/pypi/v/avilla-core)](https://pypi.org/project/avilla-core)       | Official |  MIT   |
|   [Console](avilla/console)    |         终端环境          |          `Console`           |  **Alpha**  |    [![image](https://img.shields.io/pypi/v/avilla-console)](https://pypi.org/project/avilla-console)    | Official |  MIT   |
| [Elizabeth](avilla/elizabeth)  |      Tencent QQ       |       `mirai-api-http`       |  **Alpha**  |  [![image](https://img.shields.io/pypi/v/avilla-elizabeth)](https://pypi.org/project/avilla-elizabeth)  | Official | AGPLv3 |
| [Onebot 11](avilla/onebot/v11) |        *多平台支持*        |         `OneBot v11`         |   **WIP**   | [![image](https://img.shields.io/pypi/v/avilla-onebot-v11)](https://pypi.org/project/avilla-onebot-v11) | Official |   -    |
|     [QQ API](avilla/qqapi)     | Tencent QQ / QQ-Guild | `QQ / QQ-Guild Official API` |   **WIP**   |      [![image](https://img.shields.io/pypi/v/avilla-qqapi)](https://pypi.org/project/avilla-qqapi)      | Official |  MIT   |
|       [Red](avilla/red)        |     Tencent QQNT      |        `Red Protocol`        |   **WIP**   |        [![image](https://img.shields.io/pypi/v/avilla-red)](https://pypi.org/project/avilla-red)        | Official |  MIT   |
|    [Satori](avilla/satori)     |        *多平台支持*        |    `Satori Protocol (v1)`    |   **WIP**   |     [![image](https://img.shields.io/pypi/v/avilla-satori)](https://pypi.org/project/avilla-satori)     | Official |  MIT   |
|  [Telegram](avilla/telegram)   |       Telegram        |          `Telegram`          |  **Draft**  |   [![image](https://img.shields.io/pypi/v/avilla-telegram)](https://pypi.org/project/avilla-telegram)   |    -     |   -    |
| [Nightcord](avilla/nightcord)  |        Discord        |        `Discord Bots`        |  **Draft**  |  [![image](https://img.shields.io/pypi/v/avilla-nightcord)](https://pypi.org/project/avilla-nightcord)  |    -     |   -    |
|      [Kook](avilla/kook)       |         Kook          |            `Kook`            |  **Draft**  |       [![image](https://img.shields.io/pypi/v/avilla-kook)](https://pypi.org/project/avilla-kook)       |    -     |   -    |
| [OneBot 12](avilla/onebot/v12) |        *多平台支持*        |         `OneBot v12`         | **Planned** |                                                    -                                                    |    -     |   -    |

## 我们的愿景

创造出比这之前还要更加具有潜力和创造性的作品, 借此有力促进社区的发展,
助力社区的艺术家们 (Developers & Artists) 以更高的效率, 基于更完善的底层, 创作出更加精彩的作品.

## 相关项目

<div align="center">

星座的光芒是由一个个星点共同组成的, 任何优秀的作品都绝不会是一个人的功绩.  
而若是没有这些项目, Avilla 的实现就无从谈起.  
排名不分顺序, 可能有许遗漏, 这里仅列出部分较为重要的项目.

</div>

  + [ `Nonebot Team` ](https://github.com/nonebot):
    - [ `Nonebot v2` ](https://github.com/nonebot/nonebot2): 同样是社区中赫赫有名的优秀框架.
  + [ `Arclet Project` ](https://github.com/ArcletProject): 在借鉴的基础上, 还进行了难能可贵的优秀创新, 仍在不断成长的框架实现.
  + [ `Mamoe Technologies` ](https://github.com/mamoe):
    - [ `mirai` ](https://github.com/mamoe/mirai)
    - [ `mirai-api-http` ](https://github.com/project-mirai/mirai-api-http)
  + [ `OneBot Spec` ](https://github.com/botuniverse/onebot): Avilla for OneBot 所依据的实现规范, 同时也是 Avilla Protocol 设计时的参考之一.
  + [ `go-cqhttp` ](https://github.com/Mrs4s/go-cqhttp): 可能是现在运用最为广泛的 OneBot v11 & v12 实现.

无论如何, Avilla 都是 Graia Project 下的一个子项目, 以下项目均在不同层面上支持了 Avilla 的开发:
  + [ `Broadcast Control` ](https://github.com/GraiaProject/BroadcastControl): 事件系统实现, 最为锋利的魔剑(Magic Sword).
  + [ `Ariadne` ](https://github.com/GraiaProject/Ariadne): 继承了前作的衣钵, 在 Avilla 尚未成熟之际撑起大梁的后续作品, 同样进行了可贵的创新.

<div align="center">

衷心感谢这些以及其他未被提及的项目.

</div>


## 开源协议

若非特殊说明, Avilla 及其子包默认使用 MIT 作为开源协议, 但如果你若引用到了使用 GPL/AGPL/LGPL 等具有传染性开源协议的项目, 无论是对 Avilla 实现或是使用了相应 Avilla 实现的项目仍需要遵循相关规则.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/GraiaProject/Avilla",
    "name": "avilla-core",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "GreyElaina <GreyElaina@outlook.com>, BlueGlassBlock <blueglassblock@outlook.com>, ProgramRipper <programripper@foxmail.com>, RF-Tar-Railt <rf_tar_railt@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/48/59/5aedc632dd3b118f4be62cd3fbdadfac4724f99077aa53dbb138249ebafb/avilla_core-1.0.0a27.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n\n# Avilla\n\n_The next-gen framework for IM development._\n\n> \u5373\u523b\u52a8\u8eab, \u8e0f\u4e0a\u5bfb\u627e\u7b2c\u4e8c\u4e2a\u6545\u4e61\u7684\u65c5\u7a0b.\n\n</div>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/code%20style-black-000000.svg\" alt=\"code_style\" />\n  <img src=\"https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336\" />\n\n</p>\n\nAvilla \u662f `Graia Project` \u7684 \"\u4e0b\u4e00\u4ee3\" \u6846\u67b6\u5b9e\u73b0,\n\u901a\u8fc7\u5bf9 [ `OneBot` ](https://github.com/botuniverse/onebot), [ `Telegram Bot API` ](https://core.telegram.org/bots) \u53ca\u5176\u4ed6\u7684\u57fa\u4e8e\u4e0d\u540c\u5373\u65f6\u901a\u8baf\u8f6f\u4ef6\u5b9e\u73b0\u7684\u5404\u5f0f\u5bf9\u63a5\u63a5\u53e3,\n\u4ee5\u53ca\u5176\u4ed6\u5177\u6709\u76f8\u5e94\u6982\u5ff5\u7684 \"\u5f02\u6b65\u6d88\u606f\u6d41\" \u5b9e\u4f8b\u8fdb\u884c\u603b\u7ed3, \u62bd\u8c61\u5176\u4e2d\u6700\u4e3a\u57fa\u672c\u7684\u5404\u5f0f\u6a21\u578b, \u6784\u9020\u4e86\u4e00\u4e2a\u7406\u8bba\u4e0a\u53ef\u4ee5\u5b9e\u73b0\u96f6\u6210\u672c\u5207\u6362\u5bf9\u63a5\u5e73\u53f0\u7684\u6846\u67b6.\n\n**\u8be5\u6846\u67b6\u76ee\u524d\u5904\u4e8e\u5feb\u901f\u8fed\u4ee3\u72b6\u6001, API \u53ef\u80fd\u4f1a\u53d1\u751f _\u5267\u70c8_ \u53d8\u5316, \u53ef\u80fd\u8fd8\u4e0d\u9002\u5408\u8fdb\u884c\u751f\u4ea7\u6027\u7684\u5f00\u53d1\u4e0e\u8fd0\u7ef4**\n\n> \u9879\u76ee\u540d\u79f0\u53d6\u81ea\u65e5\u672c\u8f7b\u5c0f\u8bf4 \u300a\u9b54\u5973\u4e4b\u65c5\u300b \u7684\u89d2\u8272 \"\u827e\u7ef4\u8389\u4e9a(Avilla)\".\n\n|Docs|[![docs](https://img.shields.io/badge/docs%20on-readthedocs-black)](https://graia.readthedocs.io/)|[![docs](https://img.shields.io/badge/docs%20on-netlify-informational)](https://graia.netlify.app/)|[![docs](https://img.shields.io/badge/docs%20on-cloudflare-orange)](https://graia.pages.dev/)|\n|:-:|:-:|:-:|:-:|\n\n## Notable Features\n\n - **\u539f\u751f\u8de8\u5e73\u53f0**: \u5f00\u521b\u6027\u7684 Relationship \u64cd\u4f5c\u6a21\u578b, \u914d\u5408\u6700\u5c0f\u529f\u80fd\u5355\u5143, \u884c\u4e3a\u6269\u5c55\u7b49\u8bf8\u591a\u72ec\u7279\u8bbe\u8ba1, \u65e0\u8bba\u662f\u7b80\u5355\u7684\u6d88\u606f\u6536\u53d1\u8fd8\u662f\u5e73\u53f0\u8bbe\u8ba1\u7684\u72ec\u7279\u4ea4\u4e92, Avilla \u90fd\u80fd\u5904\u7406\u5730\u5f97\u5fc3\u5e94\u624b.\n - **\u539f\u751f\u591a\u8d26\u53f7**: Avilla \u5728\u8bbe\u8ba1\u4e4b\u521d, \u5c31\u8003\u8651\u4e86\u540c\u65f6\u7ba1\u7406\u591a\u4e2a\u8d26\u53f7, \u751a\u81f3\u662f\u591a\u4e2a\u5e73\u53f0\u4e0a\u7684\u591a\u4e2a\u8d26\u53f7\u8fd9\u4e9b\u95ee\u9898, \u5e76\u52a0\u4ee5\u7814\u7a76\u4e0e\u89e3\u51b3. \u800c\u73b0\u5728, \u8d26\u53f7\u7ba1\u7406\u672c\u5e94\u5982\u6b64\u7b80\u5355\u4fbf\u6377\u800c\u6536\u653e\u81ea\u5982.\n - **\u4e00\u6b21\u7f16\u5199, \u591a\u5e73\u53f0\u53ef\u7528**: \u5f97\u76ca\u4e8e Avilla \u7684\u5f3a\u5927\u62bd\u8c61, \u5f00\u53d1\u8005\u53ea\u9700\u9762\u5411 Avilla \u5c31\u80fd\u5b8c\u6210\u6838\u5fc3\u4e1a\u52a1\u7684\u5f00\u53d1, \u663e\u8457\u7684\u51cf\u5c11\u4e86\u7ef4\u62a4\u6210\u672c.\n - **\u5e73\u53f0\u7279\u6027\u53cb\u597d**: Avilla \u4ee5 Activity, Reaction, Extension \u7b49\u8bf8\u9879\u8bbe\u8ba1, \u4f7f\u5f97\u5f00\u53d1\u8005\u5728\u8fd0\u7528\u5e73\u53f0\u7279\u6027\u7684\u65b9\u5f0f\u66f4\u52a0\u89c4\u8303\u800c\u4e0d\u5931\u8868\u8fbe\u6027. \u62c5\u5fc3\u5e73\u53f0\u95f4\u7279\u6027\u7684\u4e0d\u901a\u7528? \u4f60\u53ef\u4ee5\u540c\u65f6\u4e3a\u591a\u4e2a\u5e73\u53f0\u7f16\u5199\u4e0d\u540c\u7684\u7279\u6027\u7528\u4f8b, Avilla \u4f1a\u81ea\u52a8\u5e94\u7528\u53ef\u7528\u7684\u9002\u914d, \u4e0d\u6539\u52a8\u6838\u5fc3\u903b\u8f91\u7684\u540c\u65f6\u4fdd\u8bc1\u57fa\u672c\u7279\u6027\u7684\u53ef\u7528!\n  > \u62c5\u5fc3\u53ef\u7528\u6027? \u6211\u4eec\u540c\u6837\u63d0\u4f9b\u4e86\u4e00\u4e9b\u6838\u5fc3\u7684\u975e\u5e73\u53f0\u4f9d\u8d56\u5b9e\u73b0, \u4f8b\u5982 `TextCommand`, \u8fd9\u4e9b\u7ec4\u4ef6\u4ec5\u8981\u6c42\u5e73\u53f0\u5b9e\u73b0\u6700\u57fa\u672c\u7684\u4ea4\u4e92\u5b9e\u73b0, \u5269\u4e0b\u7684\u4e00\u5207\u4ea4\u7ed9 Avilla \u5904\u7406!\n - **\u73b0\u6709\u57fa\u5efa\u517c\u5bb9**: \u5f97\u76ca\u4e8e `Amnesia`, `Commander`, `Twilight`, `Alconna` \u6216\u662f\u57fa\u4e8e `Launart` \u7f16\u5199\u7684\u5404\u5f0f\u6269\u5c55, \u53ef\u4ee5\u76f4\u63a5\u4e0e Avilla \u534f\u540c\u800c\u65e0\u9700\u4efb\u4f55\u8fc1\u79fb\u6210\u672c.\n - **\u9ad8\u53ef\u4f38\u7f29\u6027**: Avilla \u65e2\u652f\u6301\u5355\u6587\u4ef6\u4f7f\u7528, \u4ea6\u652f\u6301\u57fa\u4e8e Graia Saya \u9a71\u52a8\u7684\u6a21\u5757\u7cfb\u7edf\u7f16\u5199\u5e94\u7528.\n\n## Quick Start\n\n```py\nfrom avilla.core import Avilla, Context, MessageReceived\nfrom avilla.console.protocol import ConsoleProtocol\n\navilla = Avilla()\navilla.apply_protocols(ConsoleProtocol())\n\n\n@avilla.listen(MessageReceived)\nasync def on_message_received(cx: Context, event: MessageReceived):\n    await cx.scene.send_message(\"Hello, Avilla!\")\n\n\navilla.launch()\n```\n\n## \u90e8\u4ef6\u53d1\u5e03\u60c5\u51b5\n\n|               \u4ee3\u53f7               |         \u5bf9\u63a5\u5e73\u53f0          |              \u534f\u8bae              |    \u5f00\u53d1\u8fdb\u5ea6     |                                                  PyPI                                                   |   \u7ef4\u62a4\u8005    |  \u5f00\u6e90\u534f\u8bae  |\n|:------------------------------:|:---------------------:|:----------------------------:|:-----------:|:-------------------------------------------------------------------------------------------------------:|:--------:|:------:|\n|      [Core](avilla/core)       |           -           |              -               |  **Alpha**  |       [![image](https://img.shields.io/pypi/v/avilla-core)](https://pypi.org/project/avilla-core)       | Official |  MIT   |\n|   [Console](avilla/console)    |         \u7ec8\u7aef\u73af\u5883          |          `Console`           |  **Alpha**  |    [![image](https://img.shields.io/pypi/v/avilla-console)](https://pypi.org/project/avilla-console)    | Official |  MIT   |\n| [Elizabeth](avilla/elizabeth)  |      Tencent QQ       |       `mirai-api-http`       |  **Alpha**  |  [![image](https://img.shields.io/pypi/v/avilla-elizabeth)](https://pypi.org/project/avilla-elizabeth)  | Official | AGPLv3 |\n| [Onebot 11](avilla/onebot/v11) |        *\u591a\u5e73\u53f0\u652f\u6301*        |         `OneBot v11`         |   **WIP**   | [![image](https://img.shields.io/pypi/v/avilla-onebot-v11)](https://pypi.org/project/avilla-onebot-v11) | Official |   -    |\n|     [QQ API](avilla/qqapi)     | Tencent QQ / QQ-Guild | `QQ / QQ-Guild Official API` |   **WIP**   |      [![image](https://img.shields.io/pypi/v/avilla-qqapi)](https://pypi.org/project/avilla-qqapi)      | Official |  MIT   |\n|       [Red](avilla/red)        |     Tencent QQNT      |        `Red Protocol`        |   **WIP**   |        [![image](https://img.shields.io/pypi/v/avilla-red)](https://pypi.org/project/avilla-red)        | Official |  MIT   |\n|    [Satori](avilla/satori)     |        *\u591a\u5e73\u53f0\u652f\u6301*        |    `Satori Protocol (v1)`    |   **WIP**   |     [![image](https://img.shields.io/pypi/v/avilla-satori)](https://pypi.org/project/avilla-satori)     | Official |  MIT   |\n|  [Telegram](avilla/telegram)   |       Telegram        |          `Telegram`          |  **Draft**  |   [![image](https://img.shields.io/pypi/v/avilla-telegram)](https://pypi.org/project/avilla-telegram)   |    -     |   -    |\n| [Nightcord](avilla/nightcord)  |        Discord        |        `Discord Bots`        |  **Draft**  |  [![image](https://img.shields.io/pypi/v/avilla-nightcord)](https://pypi.org/project/avilla-nightcord)  |    -     |   -    |\n|      [Kook](avilla/kook)       |         Kook          |            `Kook`            |  **Draft**  |       [![image](https://img.shields.io/pypi/v/avilla-kook)](https://pypi.org/project/avilla-kook)       |    -     |   -    |\n| [OneBot 12](avilla/onebot/v12) |        *\u591a\u5e73\u53f0\u652f\u6301*        |         `OneBot v12`         | **Planned** |                                                    -                                                    |    -     |   -    |\n\n## \u6211\u4eec\u7684\u613f\u666f\n\n\u521b\u9020\u51fa\u6bd4\u8fd9\u4e4b\u524d\u8fd8\u8981\u66f4\u52a0\u5177\u6709\u6f5c\u529b\u548c\u521b\u9020\u6027\u7684\u4f5c\u54c1, \u501f\u6b64\u6709\u529b\u4fc3\u8fdb\u793e\u533a\u7684\u53d1\u5c55,\n\u52a9\u529b\u793e\u533a\u7684\u827a\u672f\u5bb6\u4eec (Developers & Artists) \u4ee5\u66f4\u9ad8\u7684\u6548\u7387, \u57fa\u4e8e\u66f4\u5b8c\u5584\u7684\u5e95\u5c42, \u521b\u4f5c\u51fa\u66f4\u52a0\u7cbe\u5f69\u7684\u4f5c\u54c1.\n\n## \u76f8\u5173\u9879\u76ee\n\n<div align=\"center\">\n\n\u661f\u5ea7\u7684\u5149\u8292\u662f\u7531\u4e00\u4e2a\u4e2a\u661f\u70b9\u5171\u540c\u7ec4\u6210\u7684, \u4efb\u4f55\u4f18\u79c0\u7684\u4f5c\u54c1\u90fd\u7edd\u4e0d\u4f1a\u662f\u4e00\u4e2a\u4eba\u7684\u529f\u7ee9.  \n\u800c\u82e5\u662f\u6ca1\u6709\u8fd9\u4e9b\u9879\u76ee, Avilla \u7684\u5b9e\u73b0\u5c31\u65e0\u4ece\u8c08\u8d77.  \n\u6392\u540d\u4e0d\u5206\u987a\u5e8f, \u53ef\u80fd\u6709\u8bb8\u9057\u6f0f, \u8fd9\u91cc\u4ec5\u5217\u51fa\u90e8\u5206\u8f83\u4e3a\u91cd\u8981\u7684\u9879\u76ee.\n\n</div>\n\n  + [ `Nonebot Team` ](https://github.com/nonebot):\n    - [ `Nonebot v2` ](https://github.com/nonebot/nonebot2): \u540c\u6837\u662f\u793e\u533a\u4e2d\u8d6b\u8d6b\u6709\u540d\u7684\u4f18\u79c0\u6846\u67b6.\n  + [ `Arclet Project` ](https://github.com/ArcletProject): \u5728\u501f\u9274\u7684\u57fa\u7840\u4e0a, \u8fd8\u8fdb\u884c\u4e86\u96be\u80fd\u53ef\u8d35\u7684\u4f18\u79c0\u521b\u65b0, \u4ecd\u5728\u4e0d\u65ad\u6210\u957f\u7684\u6846\u67b6\u5b9e\u73b0.\n  + [ `Mamoe Technologies` ](https://github.com/mamoe):\n    - [ `mirai` ](https://github.com/mamoe/mirai)\n    - [ `mirai-api-http` ](https://github.com/project-mirai/mirai-api-http)\n  + [ `OneBot Spec` ](https://github.com/botuniverse/onebot): Avilla for OneBot \u6240\u4f9d\u636e\u7684\u5b9e\u73b0\u89c4\u8303, \u540c\u65f6\u4e5f\u662f Avilla Protocol \u8bbe\u8ba1\u65f6\u7684\u53c2\u8003\u4e4b\u4e00.\n  + [ `go-cqhttp` ](https://github.com/Mrs4s/go-cqhttp): \u53ef\u80fd\u662f\u73b0\u5728\u8fd0\u7528\u6700\u4e3a\u5e7f\u6cdb\u7684 OneBot v11 & v12 \u5b9e\u73b0.\n\n\u65e0\u8bba\u5982\u4f55, Avilla \u90fd\u662f Graia Project \u4e0b\u7684\u4e00\u4e2a\u5b50\u9879\u76ee, \u4ee5\u4e0b\u9879\u76ee\u5747\u5728\u4e0d\u540c\u5c42\u9762\u4e0a\u652f\u6301\u4e86 Avilla \u7684\u5f00\u53d1:\n  + [ `Broadcast Control` ](https://github.com/GraiaProject/BroadcastControl): \u4e8b\u4ef6\u7cfb\u7edf\u5b9e\u73b0, \u6700\u4e3a\u950b\u5229\u7684\u9b54\u5251(Magic Sword).\n  + [ `Ariadne` ](https://github.com/GraiaProject/Ariadne): \u7ee7\u627f\u4e86\u524d\u4f5c\u7684\u8863\u94b5, \u5728 Avilla \u5c1a\u672a\u6210\u719f\u4e4b\u9645\u6491\u8d77\u5927\u6881\u7684\u540e\u7eed\u4f5c\u54c1, \u540c\u6837\u8fdb\u884c\u4e86\u53ef\u8d35\u7684\u521b\u65b0.\n\n<div align=\"center\">\n\n\u8877\u5fc3\u611f\u8c22\u8fd9\u4e9b\u4ee5\u53ca\u5176\u4ed6\u672a\u88ab\u63d0\u53ca\u7684\u9879\u76ee.\n\n</div>\n\n\n## \u5f00\u6e90\u534f\u8bae\n\n\u82e5\u975e\u7279\u6b8a\u8bf4\u660e, Avilla \u53ca\u5176\u5b50\u5305\u9ed8\u8ba4\u4f7f\u7528 MIT \u4f5c\u4e3a\u5f00\u6e90\u534f\u8bae, \u4f46\u5982\u679c\u4f60\u82e5\u5f15\u7528\u5230\u4e86\u4f7f\u7528 GPL/AGPL/LGPL \u7b49\u5177\u6709\u4f20\u67d3\u6027\u5f00\u6e90\u534f\u8bae\u7684\u9879\u76ee, \u65e0\u8bba\u662f\u5bf9 Avilla \u5b9e\u73b0\u6216\u662f\u4f7f\u7528\u4e86\u76f8\u5e94 Avilla \u5b9e\u73b0\u7684\u9879\u76ee\u4ecd\u9700\u8981\u9075\u5faa\u76f8\u5173\u89c4\u5219.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": null,
    "version": "1.0.0a27",
    "project_urls": {
        "Homepage": "https://github.com/GraiaProject/Avilla",
        "Repository": "https://github.com/GraiaProject/Avilla"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3d2bcd6fcb5702c37c4e0c18c0b84e4d88a96459a2dada480f61dd8ebb66fd6",
                "md5": "630d93663a4bcfb20f308dc00d44b62d",
                "sha256": "0a1d5a7828d042edc22b163ce34f7ff579bf99b772b2bcba07849adb0a09ae23"
            },
            "downloads": -1,
            "filename": "avilla_core-1.0.0a27-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "630d93663a4bcfb20f308dc00d44b62d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 76492,
            "upload_time": "2024-11-05T09:08:55",
            "upload_time_iso_8601": "2024-11-05T09:08:55.986790Z",
            "url": "https://files.pythonhosted.org/packages/d3/d2/bcd6fcb5702c37c4e0c18c0b84e4d88a96459a2dada480f61dd8ebb66fd6/avilla_core-1.0.0a27-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "48595aedc632dd3b118f4be62cd3fbdadfac4724f99077aa53dbb138249ebafb",
                "md5": "d3ac44f935a45f38557b8ef0ac06e672",
                "sha256": "2935c40968e8625f9cc02539629eb0ae9023b77910dede01065e2e4415ed11ae"
            },
            "downloads": -1,
            "filename": "avilla_core-1.0.0a27.tar.gz",
            "has_sig": false,
            "md5_digest": "d3ac44f935a45f38557b8ef0ac06e672",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 48781,
            "upload_time": "2024-11-05T09:08:57",
            "upload_time_iso_8601": "2024-11-05T09:08:57.594417Z",
            "url": "https://files.pythonhosted.org/packages/48/59/5aedc632dd3b118f4be62cd3fbdadfac4724f99077aa53dbb138249ebafb/avilla_core-1.0.0a27.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-05 09:08:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "GraiaProject",
    "github_project": "Avilla",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "avilla-core"
}
        
Elapsed time: 0.39701s