Rust RSS 阅读器 for Windows 10
一个完全用 AI 写的轻量级、高性能的 RSS 阅读器,具有现代化的用户界面和流畅的用户体验。 我本人没学过 RUST.
功能特性
核心功能
- RSS 源管理:添加、编辑、删除、分组管理订阅源
- 文章阅读:三栏布局,支持文章列表和内容渲染
- 自动更新:可配置的自动更新间隔,支持后台静默更新
- 搜索功能:支持全文搜索,两种搜索模式(直接搜索和索引搜索)
- 通知系统:新文章桌面通知
- AI 集成:支持与 AI 聊天,可将文章标题内容发送给 AI 进行分析
- 系统托盘:支持最小化到系统托盘,方便后台运行
- 导入导出:支持 OPML 格式的订阅源导入导出
界面与体验
- 现代化 UI:采用 egui 框架,提供流畅的交互体验
- 主题切换:支持亮色/暗色主题,可跟随系统主题
- 字体调整:支持自定义字体大小
- 过滤排序:支持按未读、收藏状态过滤,按日期或标题排序
- 文章标记:支持已读/未读标记,收藏功能
- 批量操作:支持全部标记已读、全部删除等操作
性能优化
- 异步设计:基于 Tokio 运行时,支持异步操作
- 高效渲染:优化的文章内容渲染,支持 HTML 解析
- 内存管理:高效的内存使用,支持大量订阅源
- 搜索优化:支持索引搜索,提高搜索速度
技术栈
- 编程语言:Rust
- GUI 框架:egui
- 异步运行时:Tokio
- 数据库:SQLite
- RSS 解析:rss crate
- HTTP 客户端:reqwest
- 系统托盘:tray-item
安装方法
从源码构建
- 确保已安装 Rust 环境(推荐使用 rustup )
- 克隆仓库:
git clone https://github.com/chtcrack/rust-rss-reader cd rust-rss-reader
- 构建项目:
cargo build --release
- 运行程序:
cargo run --release
直接运行
- 从发布页面下载最新的可执行文件
- 解压后直接运行
rust_rss_reader.exe
使用说明
添加订阅源
- 点击左侧面板底部的"添加订阅源"按钮
- 输入 RSS 源的 URL 和标题
- 选择分组(可选)
- 配置自动更新和通知选项
- 点击"添加"按钮
阅读文章
- 在左侧面板选择订阅源
- 在中间面板浏览文章列表
- 点击文章标题查看内容
- 使用工具栏标记已读/未读或收藏文章
搜索文章
- 在顶部搜索框输入关键词
- 支持实时搜索,自动防抖
- 可选择在特定订阅源内搜索
- 搜索结果按发布日期排序
配置自动更新
- 点击菜单中的"设置"选项
- 配置自动更新间隔(分钟)
- 选择是否启用自动更新
- 保存设置
与 AI 聊天
- 选择一篇或多篇文章
- 点击"和 AI 聊天"按钮
- 在 AI 聊天窗口中输入问题
- 等待 AI 响应
- 可配置 AI API 参数
导入导出订阅源
- 点击菜单中的"导入 OPML"或"导出 OPML"选项
- 选择文件路径
- 完成导入或导出操作
配置说明
程序首次运行时会在用户目录下创建配置文件,配置项包括:
- 主题设置:亮色/暗色/跟随系统
- 字体大小:可调整的字体大小
- 自动更新间隔:默认 30 分钟
- 系统托盘:是否显示系统托盘图标
- 通知设置:是否启用新文章通知
- AI API 配置:API URL 、API Key 、模型名称
- 搜索模式:直接搜索或索引搜索
项目结构
src/ ├── main.rs # 程序入口点 ├── app.rs # 应用程序主逻辑 ├── models.rs # 数据模型定义 ├── feed_manager.rs # 订阅源管理 ├── rss.rs # RSS 获取和解析 ├── storage.rs # 数据存储 ├── search.rs # 搜索功能 ├── notification.rs # 通知管理 ├── ai_client.rs # AI 客户端 ├── tray.rs # 系统托盘 ├── config.rs # 配置管理 └── utils.rs # 工具函数
开发说明
运行测试
cargo test
运行调试版本
cargo run
代码风格
项目使用 rustfmt 进行代码格式化,使用 clippy 进行代码检查:
cargo fmt cargo clippy
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request !
问题反馈
如果您遇到任何问题或有建议,请在 GitHub Issues 中提交。
更新日志
v1.0.0
- 初始版本发布
- 支持基本的 RSS 源管理和文章阅读
- 实现自动更新和通知功能
- 支持搜索和 AI 集成
- 支持系统托盘和 OPML 导入导出
联系方式
项目地址: https://github.com/chtcrack/rust-rss-reader