type
status
date
slug
summary
tags
category
icon
password
URL
在信息爆炸的时代,如何高效地获取和管理分散在各个平台的内容成为了一个重要课题。RSS 技术作为一种古老而强大的信息聚合方式,正在经历一场复兴。而RSSHub作为这场复兴运动的核心推动者,凭借其 "万物皆可 RSS" 的理念,已经成为全球最大的 RSS 网络,拥有超过 5000 个实例运行在世界各地。
RSSHub 是由中国开发者 DIYgod 创建的开源项目,在 GitHub 上获得了近 30k 的 Star,拥有超过 900 名贡献者,每月处理超过 3 亿次请求(32)。这个项目的核心价值在于,它能够将任何不支持原生 RSS 订阅的网站内容,尤其是那些封闭的平台,转化为标准化的 RSS 源,让用户可以通过 RSS 阅读器集中管理所有关注的内容(106)。
一、RSSHub 的技术架构与核心特性
1.1 技术架构演进
RSSHub 的技术架构经历了一次重大的现代化升级。项目最初基于 Node.js 10 开发,使用 Koa 框架构建后端服务(130)。然而,随着技术的发展,项目面临着架构陈旧的问题,许多当时的 "下一代" 技术已经成为历史,无法应用 JSX、TypeScript、Serverless 等现代技术。
为此,项目作者决定进行彻底的重构,采用了全新的技术栈(32):
- Web 框架:从 Koa 升级到 Hono
- 编程语言:从 JavaScript 迁移到 TypeScript
- 模块系统:从 CommonJS 转换为 ESModule
- 模板引擎:从 art-template 升级到 JSX
- 测试框架:从 Jest 更换为 Vitest
这种技术架构的现代化不仅提升了代码的可维护性和可扩展性,也为 RSSHub 的未来发展奠定了坚实基础。目前,RSSHub 需要运行在Node.js 22 或更高版本上,这确保了能够充分利用最新的 JavaScript 特性和性能优化。
1.2 核心功能特性
RSSHub 的设计理念是 "Everything is RSSible"(万物皆可 RSS),这一理念贯穿了整个项目的设计和实现。其核心特性包括:
去中心化网络:RSSHub 形成了世界上最大的 RSS 网络,全球有超过 5000 个实例在运行。这种去中心化的架构不仅提高了服务的可靠性和可用性,也为用户提供了更多的选择。
丰富的路由支持:RSSHub 提供了1000 多个预配置路由,支持 300 多个网站,涵盖上千个内容源(103)。从主流的社交媒体平台到小众的技术博客,几乎你能想到的平台都能找到相应的 RSS 订阅源。
模块化设计:RSSHub 采用了清晰的模块化架构:
- 路由系统:将 URL 路径映射到特定的内容处理器
- 中间件层:处理缓存、请求限制和日志等横切关注点
- 模板引擎:将各种数据源转换为标准 RSS/Atom 格式
多格式输出支持:RSSHub 不仅支持传统的 RSS 2.0 格式,还支持 Atom 和 JSON 格式(145)。用户可以通过在 URL 末尾添加
.rss、.atom或.json来获取不同格式的输出,或者使用format参数进行指定。灵活的配置系统:RSSHub 通过环境变量进行配置,支持多种配置方式,包括本地.env 文件、Docker 环境变量等(168)。这种设计使得用户可以根据不同的部署环境灵活调整配置。
1.3 支持的平台与服务
RSSHub 支持的平台范围之广令人惊叹,几乎涵盖了所有主流的内容平台(103):
社交媒体平台:
- 微博:用户动态、话题、热搜
- Twitter:用户推文、列表
- 知乎:用户动态、专栏、话题
- 豆瓣:小组、日记、广播
- 小红书:用户笔记、收藏
视频平台:
- B 站:用户动态、投稿视频、收藏夹
- YouTube:频道更新、播放列表
- 抖音:用户动态(部分支持)
- AcFun:用户视频
资讯平台:
- 微信公众号:通过特殊路由支持
- 36 氪、虎嗅、钛媒体等科技媒体
- 财新、澎湃新闻等主流媒体
- 知乎日报、即刻热榜
代码与开源平台:
- GitHub:仓库更新、Issue、Pull Request
- GitLab:项目动态
- Gitee:码云项目
其他特色平台:
- 网易云音乐:歌单、电台
- Steam:游戏更新、评测
- 快递查询:各大快递公司物流信息
- 天气信息:各地天气预报
这种广泛的平台支持使得 RSSHub 成为了一个真正的 "万能"RSS 生成器,用户可以用它来聚合几乎任何在线内容。
二、RSSHub 的安装部署指南
2.1 系统环境准备
在开始安装 RSSHub 之前,你需要确保系统环境满足以下要求:
Node.js 环境:RSSHub 需要运行在Node.js 22.0 或更高版本上。你可以通过以下命令检查当前 Node.js 版本:
如果你的系统还没有安装 Node.js,或者版本过低,可以通过以下方式安装:
Linux 系统(以 Ubuntu 为例):
macOS 系统(使用 Homebrew):
Windows 系统:从Node.js 官网下载最新的 22.x LTS 版本安装包,按照安装向导进行安装。
包管理器:RSSHub 支持多种包管理器,推荐使用 pnpm 以获得最佳性能和依赖管理体验。你可以通过以下命令安装:
其他依赖:某些高级功能可能需要额外的依赖,如 Redis 用于缓存、Chromium 用于 puppeteer 支持等。这些依赖会在需要时通过 Docker 自动安装。
2.2 手动部署方式
手动部署是最直接的安装方式,适合对技术有一定了解的用户。以下是详细的安装步骤:
步骤 1:克隆 RSSHub 仓库
步骤 2:安装依赖包
步骤 3:启动 RSSHub 服务
步骤 4:验证安装
打开浏览器访问
http://localhost:1200,如果看到 RSSHub 的欢迎页面,说明安装成功(155)。页面上会显示 "Welcome to RSSHub! The world's largest RSS network." 的字样。2.3 Docker 容器化部署
Docker 部署是推荐的生产环境部署方式,它具有部署简单、环境一致、易于维护等优点。
基础 Docker 部署:
包含 puppeteer 支持的部署:
某些路由(如需要 JavaScript 渲染的页面)需要 puppeteer 支持,可以使用
chromium-bundled镜像:Docker Compose 部署(推荐):
创建
docker-compose.yml文件,内容如下(60):然后执行以下命令启动服务:
这种部署方式包含了 Redis 缓存支持,能够显著提升性能。
2.4 一键部署方案
除了手动部署和 Docker 部署,RSSHub 还支持多种一键部署方案:
Railway 部署:
访问 Railway 部署页面,点击一键部署按钮即可完成部署(2)。
Zeabur 部署:
- 注册 Zeabur 账号
- 创建新项目
- 从市场选择 RSSHub 服务
- 配置域名(可选)
- 完成部署
其他平台:
RSSHub 还支持在以下平台一键部署:
- Heroku(注意:Heroku 已停止免费服务)
- Vercel
- Fly.io
- Sealos
- Google App Engine
每种平台都有其特点和适用场景,你可以根据自己的需求选择合适的部署方式。
- 作者:假维斯
- 链接:https://airouter.me/article/example-3
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
.webp?table=block&id=29d6498c-e5c2-81db-8e4b-e244bef7a08e&t=29d6498c-e5c2-81db-8e4b-e244bef7a08e)
.webp?table=block&id=29d6498c-e5c2-81c0-a99d-c7634656aeb1&t=29d6498c-e5c2-81c0-a99d-c7634656aeb1)
.webp?table=block&id=29d6498c-e5c2-8142-95cf-f25aa5bf7c3c&t=29d6498c-e5c2-8142-95cf-f25aa5bf7c3c)
.webp?table=block&id=29d6498c-e5c2-81a6-9769-d0a36aa56ae1&t=29d6498c-e5c2-81a6-9769-d0a36aa56ae1)
.webp?table=block&id=29d6498c-e5c2-81b9-9097-ca18dffbaf26&t=29d6498c-e5c2-81b9-9097-ca18dffbaf26)
.webp?table=block&id=29d6498c-e5c2-8179-a7cc-f3e9ba78174b&t=29d6498c-e5c2-8179-a7cc-f3e9ba78174b)
.webp?table=block&id=29d6498c-e5c2-8140-8b6e-d6c086671a60&t=29d6498c-e5c2-8140-8b6e-d6c086671a60)


.webp?table=block&id=2a46498c-e5c2-803f-a528-d55d2aaf203b&t=2a46498c-e5c2-803f-a528-d55d2aaf203b)

