基于 Rust + Dioxus 的个人信息流聚合与 AI 摘要应用。
.
├── apps/
│ └── umbreon-mobile/ # Dioxus 移动端应用(主入口)
├── crates/
│ └── umbreon-core/ # 共享核心库(预留)
├── workers/
│ ├── feed-aggregator-worker/ # Feed 聚合 Worker(预留)
│ └── supermemory-worker/ # 记忆同步 Worker(预留)
├── docs/
│ └── umbreon-prd.md # 产品需求文档
├── Cargo.toml # Workspace 配置
└── README.md
- RSS/ATOM 订阅管理 - 添加、删除、刷新各类 RSS 源
- AI 智能摘要 - 通过 OpenAI API 为文章生成摘要
- Supermemory 集成 - 与 Supermemory API 对接,实现内容记忆与检索
- 本地数据存储 - SQLite 本地存储(非 WASM 环境)
- 多 AI Provider 支持 - 支持配置不同的 OpenAI 兼容 API
- 时间线浏览 - 按时间顺序浏览订阅内容
- UI 框架: Dioxus 0.5(跨平台 Rust UI)
- HTTP 客户端: reqwest
- RSS 解析: feed-rs
- AI 接入: async-openai
- 数据存储: rusqlite(本地)、web-sys Storage(Web)
- 配置管理: TOML + 本地文件
- Rust 1.75+ (2024 Edition)
- Android SDK(如需构建安卓 APK)
# 检查整个 workspace
cargo check
# 运行移动端应用(桌面预览模式)
cargo run -p umbreon-mobile
# 构建安卓 APK
cargo install dioxus-cli
dx build -p umbreon-mobile --platform android首次启动后,在应用内的「设置」页面配置:
- AI Provider - 填入 OpenAI API Key 或自定义 API 端点
- Supermemory - 配置记忆系统的 API 连接
- RSS 源 - 添加感兴趣的 RSS/ATOM 订阅地址
| 模块 | 文件 | 说明 |
|---|---|---|
| 主入口 | main.rs |
应用启动,初始化 tracing 日志 |
| 应用根 | app.rs |
AppRoot 组件,管理全局状态 |
| 状态管理 | state.rs |
全局 Signal 状态定义与管理 |
| 存储层 | storage.rs |
SQLite / Web Storage 封装 |
| 时间线 | timeline.rs |
Feed 数据抓取与处理逻辑 |
| 设置页 | settings.rs |
AI Provider、记忆系统配置 UI |
| AI 客户端 | general_ai_client.rs |
OpenAI API 封装 |
| 记忆客户端 | memory_client.rs |
Supermemory API 封装 |
| 样式 | style.rs |
CSS-in-Rust 样式定义 |
| 组件 | components/ |
导航、播放器、探索页、记忆页等 |
- Worker 服务实现(云端聚合、记忆同步)
- umbreon-core 核心库提取
- 音频/视频播放器完整实现
- 弹幕系统