change core library to libilibili

This commit is contained in:
2026-07-18 12:57:36 -07:00
parent f599672a30
commit 1598d3c403
34 changed files with 795 additions and 12219 deletions
+146 -2409
View File
File diff suppressed because it is too large Load Diff
+3 -5
View File
@@ -7,14 +7,12 @@ edition = "2024"
axum = { version = "0.8", features = ["ws", "json"] }
async-trait = "0.1"
base64 = "0.22"
# Patched local copy of the published blivedm_rs crate. The patch preserves
# the upstream raw payload so the application can retain UID, price and event
# identifiers for atomic accounting and gift de-duplication.
blivedm = { path = "../../vendor/blivedm", default-features = false }
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
chacha20poly1305 = "0.10"
deadpool-postgres = "0.14"
futures-channel = "0.3"
# Kept as a sibling checkout during development. Docker Compose supplies the
# same directory as a named BuildKit context at `/libilibili`.
libilibili = { path = "../../../libilibili" }
rand = "0.9"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
serde = { version = "1", features = ["derive"] }
+3 -2
View File
@@ -27,7 +27,7 @@ crate 导出。
- handler 不能信任请求体中的 owner;owner 必须来自 session 或 source context。
- tenant table 查询必须在 `Db::set_tenant` 后的事务中执行。
- provider 只能输出 canonical、bounded、sanitized `LiveEvent`。
- Bilibili listener 必须保持 20 秒心跳;socket 内部重连失败后由 adapter 重建完整客户端。
- `libilibili` listener 必须保持 20 秒心跳;断线后由 adapter 重新获取弹幕 host/token 并重建 socket。
- projection 无副作用;可靠业务动作必须使用幂等 handler。
- token、邀请码和恢复码只存摘要,TOTP/CookieCloud Secret 只存认证加密密文。
- EventHub 的 channel key 是 component ID,不允许增加无权限的全局 receiver。
@@ -42,7 +42,8 @@ cargo clippy --manifest-path apps/server-rust/Cargo.toml --all-targets --no-deps
cargo test --manifest-path apps/server-rust/Cargo.toml --all-targets
```
第三方 `vendor/blivedm` 不作为本项目风格重写目标;项目只维护保留原始 JSON 所需的小补丁。
直播协议、WBI 与 WebSocket 解包由相邻的 `libilibili`
crate 维护;本项目只测试强类型命令到领域事件的映射。
更多设计说明:
+1 -1
View File
@@ -218,7 +218,7 @@ impl Config {
legacy_obs_access_token: file.obs.access_token,
legacy_overlay_defaults: overlay_defaults(file.overlay),
log_filter: file.logging.filter.unwrap_or_else(|| {
"lxc_stream_server=info,blivedm=warn,tokio_postgres=warn".into()
"lxc_stream_server=info,libilibili=warn,tokio_postgres=warn".into()
}),
gift_refresh_seconds: file
.gifts
File diff suppressed because it is too large Load Diff