feat(server): 平台默认组合——Windows granian+winloop,Unix granian+rloop

- granian[reload,rloop,uvloop,winloop] 改为默认依赖,uv sync 即具备完整启动栈
- auto 在启动器内解析为具体循环:granian Windows→winloop / Unix→rloop(缺省回退 uvloop/asyncio);
  uvicorn Unix→uvloop / Windows→asyncio
- 启动日志打印实际 server+loop;测试覆盖平台默认与回退;README 默认矩阵更新
This commit is contained in:
snowy-yang committed 2026-10-23 22:23:30 +08:00
1 parent 0cae770ace
commit bcfc1022eb
5 files changed
+115 -52

No files matched your search

+3 -12
View File
@@ -5,6 +5,9 @@ description = "多平台音乐聚合服务器"
requires-python = ">=3.12,<3.13"
dependencies = [
"fastapi>=0.115",
# 默认服务器:granian;uvicorn 作为备选(--server uvicorn)
# extras 按平台自动选择循环:rloop/uvloop(Unix)、winloop(Windows)、reload(watchfiles)
"granian[reload,rloop,uvloop,winloop]>=2.0",
"uvicorn[standard]>=0.30",
"aiohttp>=3.10",
"brotli>=1.1",
@@ -13,18 +16,6 @@ dependencies = [
"pillow>=10",
]
# 可选:Granian 服务器(Rust HTTP 实现)与高性能事件循环
# rloop —— Granian 内置的 Rust 事件循环,跨平台
# uvloop —— POSIX 上的 libuv 循环
# winloop —— Windows 上的 libuv 循环(uvloop 的 Windows 对应实现)
# 安装:uv sync --extra granian
[project.optional-dependencies]
granian = [
# granian 自带的 extras 已按平台配好 marker:
# rloop(Unix)、uvloop(Unix)、winloop(Windows)、reload(watchfiles)
"granian[reload,rloop,uvloop,winloop]>=2.0",
]
[dependency-groups]
dev = [
"pytest>=8",