一个基于 Rust 开发的轻量级 RSS 生成器,支持通过配置文件快速为任意网站生成 RSS 订阅。
- AI 配置生成指南 - 为 AI 设计的完整配置文档,无需阅读代码即可生成配置
- 配置示例 - 查看
configs/目录中的示例文件
- ✅ 零配置启动: 无需预加载配置,访问时动态加载
- ✅ 配置驱动: 通过 YAML 文件定义解析规则,无需编写代码
- ✅ 自动热重载: 修改配置文件后自动生效,无需重启
- ✅ 实时抓取: 每次请求都实时获取最新内容,无缓存延迟
- ✅ 多格式支持: 支持 RSS 2.0 格式
- ✅ 高性能: 基于 Rust 和 Tokio 异步运行时
- ✅ 极小镜像: Docker 镜像仅 7MB,基于 scratch 裸镜像
- ✅ Docker 部署: 一键部署,易于扩展
# 克隆项目
git clone <repository>
cd rust-rsshub
# 运行
cargo run
# 访问
curl http://localhost:3001/rss/observationalhazard# 构建镜像
docker build -t rust-rsshub .
# 运行
docker run -p 3000:3000 -v $(pwd)/configs:/app/configs rust-rsshub📖 查看 AI 配置生成指南 - 该文档包含:
- 完整的配置字段说明
- 常见博客平台的选择器模式
- 多个完整配置示例
- 故障排查指南
- 最佳实践建议
无需阅读代码,直接参考文档即可快速创建配置。
- 在
configs/目录创建 YAML 配置文件:
vim configs/mysite.yml- 配置内容:
plugin:
name: "mysite"
description: "My Blog RSS Feed"
version: "1.0.0"
source:
type: "html"
url: "https://example.com"
encoding: "utf-8"
parser:
list:
selector: "div.post"
link_selector: "a.title"
title_selector: "a.title"
description_selector: "p.summary"
date_selector: "span.date"
date_format: "%Y-%m-%d"
feed:
title: "My Blog"
description: "My Blog Feed"
link: "https://example.com"
language: "zh"
format: "rss"
limit: 20- 立即访问,无需重启:
curl http://localhost:3001/rss/mysite| 端点 | 方法 | 描述 |
|---|---|---|
/ |
GET | 欢迎页面 |
/health |
GET | 健康检查 |
/plugins |
GET | 列出所有插件 |
/rss/:name |
GET | 获取 RSS 订阅(实时抓取) |
PORT: 服务器端口(默认: 3001)CONFIGS_DIR: 配置文件目录(默认: configs)RUST_LOG: 日志级别(默认: info)
rust-rsshub/
├── src/
│ ├── main.rs # 主程序
│ ├── lib.rs # 库入口
│ ├── error.rs # 错误处理
│ ├── config/ # 配置系统
│ ├── fetcher/ # HTTP客户端
│ ├── parser/ # HTML解析器
│ ├── plugins/ # 插件注册和管理
│ └── router/ # Web路由
├── configs/ # 配置文件目录
├── tests/ # 测试
├── docs/ # 文档
├── Cargo.toml # 项目配置
├── Dockerfile # Docker构建文件
├── docker-compose.yml # Docker Compose配置
└── README.md # 本文件
- 语言: Rust 2021 Edition
- 运行时: Tokio (异步)
- Web框架: Axum
- HTTP客户端: Reqwest
- HTML解析: Scraper
- 序列化: Serde (YAML/JSON)
- RSS生成: RSS、Atom Syndication
当前开发进度: 90% (核心功能已完成)
- 项目初始化
- 核心数据结构定义
- 配置系统实现
- HTTP 客户端和内容获取
- 解析器系统实现
- RSS 生成器实现
- Web 服务器和路由
- 插件系统核心
- 主程序实现
- Docker 部署配置
- 完整文档
- 支持更多内容格式(JSON、XML)
- 支持内容页深度抓取
- 添加更多示例配置
运行所有测试:
cargo test运行特定测试:
cargo test --lib # 库测试
cargo test --tests # 集成测试MIT License