V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
DIYgods
V2EX  ›  程序员

一个六岁开源项目的崩溃与新生

  DIYgods ·
DIYgod · 274 天前 · 30800 次点击
这是一个创建于 274 天前的主题,其中的信息可能已经有所发展或是发生改变。

我有一个维护了六年的开源项目 —— RSSHub ,它正在面临崩溃

表面上,它有接近 30k Stars 、900 多 Contributors 、每月 3 亿多次请求和数不清的用户、每月几十刀的赞助、有源源不断的 issue 和 pr 、代码几乎每天更新,非常健康和充满活力,但在不可见的地方,持续数年高昂的维护时间成本、每月一千多刀的服务器费用、每天重复繁琐且逐渐积累的维护工作,都让它在崩溃的边缘反复横跳

https://diygod.cc/6-year-of-rsshub

第 1 条附言  ·  272 天前
谢谢大家的建议,服务器费用看起来很多,但还没到无法承受的地步,所以这倒不是最关键的问题,如果 RSSHub 对你有帮助,来 GitHub 积极贡献代码,或者多参与开放信息相关的项目,多关心自己的信息自由权力,让未来的互联网变得更开放,才算对 RSSHub 最大的帮助和真正实现了 RSSHub 的价值
128 条回复    2024-03-14 10:30:00 +08:00
1  2  
LitterGopher
    101
LitterGopher  
   273 天前
是不是可以尝试做成服务收费或收费提高去除限制,但是免费让用户自己部署?
dode
    102
dode  
   273 天前
停止更新,重新设计,取舍功能
Shazoo
    103
Shazoo  
   273 天前
时代的眼泪?前端忽悠的眼泪……
ninvfeng2020
    104
ninvfeng2020  
   273 天前 via Android
这重构太牛了
sdjl
    105
sdjl  
   273 天前
文章的重点分析如下:

项目挑战:

RSSHub 项目面临崩溃: 项目虽然在表面上看起来健康,拥有近 30k 星标、超过 900 名贡献者、每月超过 3 亿次请求,但实际上背后面临高昂的维护成本和过时的技术,每月服务器成本超过一千美元,加上繁琐的维护工作,使得项目濒临崩溃。

技术栈更新:

koa -> Hono: 从 koa 框架迁移到支持 JSX, TypeScript, Serverless 的 Hono 框架。
JavaScript -> TypeScript: 提高代码质量和减少类型相关错误。
CommonJS -> ESM: 采用 ESM 规范以提高兼容性和未来性。
art-template -> JSX: 使用 JSX 代替 art-template 模板引擎来提高效率和维护性。
Jest -> Vitest: 从 Jest 测试框架迁移到对 ESM 支持更好的 Vitest 。
Got -> ?: Got 库不再维护,作者正在寻找替代方案。

新路由标准:

路由信息集中: 通过新的路由标准将路由信息集中在 namespace.ts 和路由文件中,以减少错误和提高维护效率。
实施:

开发环境: 遍历路由文件夹来读取信息和加载路由。
生产环境: 使用预编译的路径列表来避免不必要的遍历和加载过程。
文档生成: 自动化生成,不再需要手动维护。


未来规划:

提出了一些新功能的想法,如 JSON 输出增强、用户系统和配置、路由错误通知和健康检查、与 RSS3 节点和加密货币收入的整合等。

文章的核心是描述了一个受欢迎的开源项目在经过六年的发展之后,如何因技术过时和维护负担重而面临崩溃,并在作者的努力下,通过采用现代技术框架和架构进行重构,使得项目得以重生。
alleluya
    106
alleluya  
   273 天前
圣人啊 DIYgods 最近也是渐渐刚开始入坑 rss 看到过大佬的 rsshub 项目 没想到成本这么高
ZhouXuan
    107
ZhouXuan  
   273 天前
感谢大佬无私贡献
pyre
    108
pyre  
   273 天前
太爱 rsshub 了,之前也提交了几个优质的源。
感觉就是 rsshub 在中国让 rss 再次伟大,大佬加油,有啥需求我们一定支持!
fzls
    109
fzls  
   273 天前
不能单靠赞助,建议还是做一个不影响主功能的付费功能,这样收益会好很多,至少不会入不敷出,靠爱发电
Torpedo
    110
Torpedo  
   273 天前
想知道为什么选择的 Hono ,文章里写的比较简单。有更详细的决策过程吗
Shikinatsume
    111
Shikinatsume  
   273 天前
@sdjl
@Livid AI 回复
sdjl
    112
sdjl  
   273 天前
@Shikinatsume

“请尽量让自己的回复能够对别人有帮助”

我就是让回复对他人有用,这是楼上的用户的需求
sdjl
    113
sdjl  
   273 天前   ❤️ 1
@Shikinatsume

OP 已经在 85 楼明确表示此文章的重点不是服务器维护费用,此楼已经明显歪了。 为了让大家理解 OP 的重点,此贴需要让 AI 整理出文章重点,我在帮 OP 把楼掰正~
Free3
    114
Free3  
   273 天前
之前一直在使用,挺不错的。愿意付费,但实话实说,感觉没有什么能让我付费的点。
zuisong
    115
zuisong  
   273 天前
可以考虑部署在 deno deploy 上
summerLast
    116
summerLast  
   273 天前
不知不觉关注也有 8 年多了,你还是学生那会,rss 使用爱好者群,欢迎 diygod 大佬进群

https://zhidayingxiao.cn/to/06g6wV
LiuJiang
    117
LiuJiang  
   273 天前
@ospider 做的啥项目,能发出来看看吗
uyoungco
    118
uyoungco  
   273 天前   ❤️ 1
我应该还能去维护一下网易云的播客
keepRun
    119
keepRun  
   272 天前 via Android
大佬,加点付费吧
LiMengBo
    120
LiMengBo  
   272 天前
感谢大佬无私奉献
fenglangjuxu
    121
fenglangjuxu  
   272 天前
由此认识了 xlog.app
deepbytes
    122
deepbytes  
   272 天前 via iPhone   ❤️ 1
DIYGod !居然在这里看到作者了,加油👏支持付费!
DIYgods
    123
DIYgods  
OP
   272 天前
@Torpedo 也没啥其他选择了吧,express 和 nest 都更老更笨重,对 TypeScript JSX Serverless 支持都没 Hono 好
DIYgods
    124
DIYgods  
OP
   272 天前
@summerLast 这链接是啥,点开是 链接已失效
DIYgods
    125
DIYgods  
OP
   272 天前
@fenglangjuxu 是新坑,欢迎使用!
kwkwkkk
    126
kwkwkkk  
   272 天前
到处都是大佬的影子
summerLast
    127
summerLast  
   272 天前
@DIYgods rss 爱好者微信群的二维码,更新了
juntaol678
    128
juntaol678  
   272 天前   ❤️ 1
@imNull #84 都是以 qq 频道和群的形式存在的,气氛和活跃度都还可以。
分享几个我加的,应该算是比较官方的:
肥猫宝贝:0bp346aa60
神秘的哥哥们:lz3w48o84g
影视仓交流:vs7b5hdjcu
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4965 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 09:10 · PVG 17:10 · LAX 01:10 · JFK 04:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.