An elegant OneBot 11 protocol framework for Python, inspired by Graia Ariadne.
Project description
Anchor 是基于 Graia Ariadne 设计重构的 OneBot 11 协议框架,保留了 Ariadne 优雅的 MessageChain 消息链设计和 graia 生态的核心组件(graia-broadcast、launart、creart)。
特性
- 扩展支持 — 表情回应、Markdown、群精华等
- 保留 MessageChain 设计 — 丰富的消息段类型与链式查询 API
- graia 生态兼容 — 支持
graia-broadcast、graia-saya
安装
pip install graiax-anchor
推荐使用 uv:
uv add graiax-anchor
快速开始
from graia.broadcast import Broadcast
from graiax.anchor import Anchor, OneBotConfig
from graiax.anchor.event.message import GroupMessageEvent
broadcast = Broadcast()
app = Anchor(
broadcast=broadcast,
config=OneBotConfig(
ws_url="ws://localhost:3001",
access_token="your_token",
),
)
@broadcast.receiver(GroupMessageEvent)
async def on_group_message(event: GroupMessageEvent):
chain = event.message_chain
if chain.startswith("/hello"):
await app.send_group_msg(event.group_id, "Hello, World!")
app.launch_blocking()
更多示例请参考 demo.md。
项目结构
graiax.anchor
├── app.py # Anchor 主应用类, 80+ API 方法
├── log.py # 日志系统 (LogConfig)
├── connection/ # HTTP / WebSocket 客户端与配置
├── event/ # OneBot 11 事件模型 (消息/通知/请求/元事件)
├── message/
│ ├── segment.py # 消息段类型 (Text, Image, At, Reply, Forward, ...)
│ ├── chain.py # MessageChain 消息链
│ └── parser/ # 消息解析器 (DetectPrefix, MatchRegex, ...)
├── model/ # 数据模型 (Friend, Group, Member, ...)
├── dispatcher.py # graia-broadcast Dispatcher
├── service.py # Launart 服务
└── util/ # 工具 (发送策略, 验证器, Saya 集成)
协议
本项目以 GNU AGPL-3.0 作为开源协议。
致谢
- Graia Ariadne — 框架设计灵感来源
- NapCat — OneBot 11 协议实现
- graia-broadcast — 事件分发系统
- launart — 服务生命周期管理
如果认为本项目有帮助, 欢迎点一个 Star.
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
graiax_anchor-0.1.2.tar.gz
(139.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graiax_anchor-0.1.2.tar.gz.
File metadata
- Download URL: graiax_anchor-0.1.2.tar.gz
- Upload date:
- Size: 139.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd02377c66a262d114d99d472eea834a6c0d7263ba48ace18fa737da7f07bae6
|
|
| MD5 |
0662570b27ace5477deb50f0678b7ebc
|
|
| BLAKE2b-256 |
30dd2d5798a4b7f6a4fd8cae0715a4aab5b673b40bbacf36834ce39cd676dd99
|
File details
Details for the file graiax_anchor-0.1.2-py3-none-any.whl.
File metadata
- Download URL: graiax_anchor-0.1.2-py3-none-any.whl
- Upload date:
- Size: 65.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6fa87a9160fd38bf4862b7abaade635e28e34b53cdee7123bd9b6faed6d3152
|
|
| MD5 |
c9d037a0dda4df21a68552c1168b5a09
|
|
| BLAKE2b-256 |
f2cfa322a4e7ad0bc374e4200a9253aa677a80b689f39e4a3bcb20f1fa6b45dc
|