feat: 集成 Obscura 进程内无头浏览器、极致编译瘦身 profile 与词典内存优化

- 下载器 Obscura 后备通道拆分为条件编译双路径:
    进程内模式 (obscura-inprocess feature) 通过 spawn_blocking + 单线程
    runtime 驱动 V8 直接抓取;默认外部命令行模式通过 bin/obscura 子进程调用
  - Cargo.toml 新增 obscura-browser/obscura-net 可选依赖与 release-min profile
    (LTO + strip + opt-level="s",二进制 17→8.3 MB,VSZ 1.27G→302M)
  - 词典加载后 shrink_to_fit() 释放预留容量,降低常驻内存
  - README 与 deployment.md 扩写 Obscura 双模式部署及低配服务器优化指南
  - 新增 Obscura mock 集成测试,补齐测试 fixture 字段
This commit is contained in:
fmq
2026-06-12 11:15:29 +08:00
parent 8cc2b74abc
commit 2a5b1c0c91
8 changed files with 1283 additions and 29 deletions
+14 -5
View File
@@ -55,11 +55,20 @@ cp .env.example .env
```
静态资源将打包并输出在项目根目录下的 `dashboard/dist/` 目录。
2. **运行后端服务**
```bash
cd ..
cargo run --release
```
运行后直接访问 `http://localhost:8000` 即可使用,此时所有 React 网页和后台 API 均由 Rust 进程统一分发托管,无需额外启动 Vite。
* **方式一:外部命令行模式**(默认):
```bash
cd ..
cargo run --release
```
*注意:默认模式下需下载 Obscura 二进制文件并放置在项目根目录的 `bin/` 目录下。*
* **方式二:进程内浏览器模式**(免外部二进制分发):
```bash
cd ..
cargo run --release --features obscura-inprocess
```
*此时无头浏览器将直接编译进主二进制中,首次编译较慢但能一键运行。*
运行后直接访问 `http://localhost:8000` 即可使用,此时所有 React 网页和后台 API 均由 Rust 进程统一分发托管,无需额外启动 Vite。详细配置说明参见 [编译与部署指南](docs/deployment.md#4-obscura-两种抓取后备部署模式选择-obscura-deployment-modes)。
### 2.3 馆藏文献健康度检查与修复 (Health Check)
系统提供内置的健康度校验脚本,可用于排查与自动修复数据库状态和物理磁盘文件的不一致问题: