# ShowenV2 — 数字生命窗口平台 基于 Rust 的跨平台插件微内核架构,支持全息/VR/AR/屏幕显示,承载虚拟宠物、数字人、AI 歌姬、3D 模型等数字生命内容。 ## 架构概览 ``` ShowenV2/ ├── CLAUDE.md / docs/STATUS.md # 管理手册 · 功能成熟度板 ├── src/ │ ├── core/ # 插件微内核(消息/配置/动态插件/版本) │ └── plugins/ # video · http · ble · wifi · device · screen · live2d · ai ├── configs/ # 角色内容包 JSON ├── clients/flutter/ # 安卓控制 App(M1 遥控 + M2.1 对话骨架) ├── scripts/device/ # 设备运维脚本 ├── plugin-sdk/ · plugins/ # 动态插件 SDK 与示例 ├── tests/ # M1.2 集成测试 └── docs/ # PRD / 测试计划 / STATUS ``` **功能做到哪了**:请先读 [`docs/STATUS.md`](docs/STATUS.md),勿仅看提交日期。 ## 技术栈 - **语言**: Rust (edition 2021) - **视频**: OpenCV 0.66 - **HTTP**: warp + tokio - **BLE**: D-Bus + BlueZ (GATT) - **WiFi**: nmcli - **插件加载**: libloading - **远程仓库**: ureq + flate2 + tar ## 动态插件系统 ShowenV2 支持两种插件模式: 1. **静态插件** — 编译时链接(video, http, ble, wifi, device, screen, live2d, ai 等) 2. **动态插件** — 运行时加载 `.so` 文件,通过 `extern "C"` FFI + JSON 序列化通信 动态插件特性: - 多版本管理 (`plugin_store/` 目录结构) - 远程仓库下载安装 (HTTP + tar.gz) - 错误自动回退 (AutoRollback / DisableAndLog) - REST API 管理 (`/api/plugins/*`) ## 快速开始 ```bash # 验证配置 cargo run -- --validate --config configs/dog_state_machine.json # 运行 cargo run -- --config configs/dog_state_machine.json # 测试 cargo test --workspace ``` ## 硬件与平台定位 - **平台定位**: ShowenV2 是通用数字生命窗口平台,不局限于“全息宠物播放器” - **分辨率支持**: 支持 8K 以内所有分辨率显示 - **显示类型**: 支持 AR、VR、XR、普通屏幕、全息显示、投影、LED 矩阵,以及任何可运行的显示设备 - **当前调试环境**: Debian 11 KDE 桌面 (`ARM64` / `aarch64`) - **跨平台策略**: 当前以 Linux/ARM64 为主,架构已为扩展到其他平台预留空间