一个完全用AI写的轻量级、高性能的RSS阅读器,具有现代化的用户界面和流畅的用户体验。 我本人没学过RUST.
- RSS源管理:添加、编辑、删除、分组管理订阅源
- 文章阅读:三栏布局,支持文章列表和内容渲染
- 自动更新:可配置的自动更新间隔,支持后台静默更新,显示更新倒计时
- 搜索功能:支持全文搜索,两种搜索模式(直接搜索和索引搜索)
- 通知系统:新文章桌面通知,支持查看按钮
- AI集成:支持与AI聊天,可将文章标题内容发送给AI进行分析;支持AI自动翻译功能,可自动检测文章语言并翻译为中文
- 系统托盘:支持最小化到系统托盘,方便后台运行
- 导入导出:支持OPML格式的订阅源导入导出
- 批量操作:支持全部标记已读、全部删除等操作
- 现代化UI:采用egui框架,提供流畅的交互体验
- 主题切换:支持亮色/暗色主题,可跟随系统主题
- 字体调整:支持自定义字体大小
- 过滤排序:支持按未读、收藏状态过滤,按日期或标题排序
- 文章标记:支持已读/未读标记,收藏功能
- 批量操作:支持全部标记已读、全部删除等操作
- 分页功能:支持文章分页显示,可配置每页数量
- 底部状态栏:显示自动更新倒计时、状态信息等
- AI聊天界面:支持AI对话窗口封装和直接打开按钮
- 分组编辑:支持订阅源分组编辑功能
- WebView集成:支持使用WebView打开文章链接
- 异步设计:基于Tokio运行时,支持异步操作
- 高效渲染:优化的文章内容渲染,支持HTML解析
- 内存管理:高效的内存使用,支持大量订阅源
- 搜索优化:支持索引搜索,提高搜索速度
- 编程语言:Rust
- GUI框架:egui
- 异步运行时:Tokio
- 数据库:SQLite
- RSS解析:rss crate
- HTTP客户端:reqwest
- 系统托盘:tray-item
- WebView:web-view
- OPML处理:opml crate
- HTML解析:内置HTML解析功能
- AI集成:自定义AI客户端
- 确保已安装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 API参数
- 在添加或编辑订阅源时,勾选"AI自动翻译"选项
- 系统会自动检测文章语言
- 如果文章不是中文,系统会自动将文章标题和内容翻译为中文
- 翻译后的文章会保存在数据库中,供后续阅读
- 支持在订阅源管理中批量开启或关闭AI自动翻译功能
- 点击菜单中的"导入OPML"或"导出OPML"选项
- 选择文件路径
- 完成导入或导出操作
程序首次运行时会在用户目录下创建配置文件,配置项包括:
- 主题设置:亮色/暗色/跟随系统
- 字体大小:可调整的字体大小
- 自动更新间隔:默认30分钟
- 系统托盘:是否显示系统托盘图标
- 通知设置:是否启用新文章通知
- AI API配置:API URL、API Key、模型名称
- AI自动翻译:可在添加/编辑订阅源时单独配置
- 搜索模式:直接搜索或索引搜索
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 # 工具函数
├── article_processor.rs # 文章处理
├── cache_manager.rs # 缓存管理
└── test_db_init.rs # 测试数据库初始化
cargo testcargo run项目使用rustfmt进行代码格式化,使用clippy进行代码检查:
cargo fmt
cargo clippy没版权,随便改随便用!
欢迎提交Issue和Pull Request!
如果您遇到任何问题或有建议,请在GitHub Issues中提交。
项目地址:https://github.com/chtcrack/rust-rss-reader
Rust RSS阅读器 - 轻量级、高性能的RSS阅读解决方案