一个曾在 npm 工作五年的作者提出,让包注册表向企业收费,并把一个固定比例按依赖树自动分给维护者。企业每年为开源供应链付出的钱超过十亿美元,其中只有极少部分流到写代码的人手里,自愿捐赠这条路走了三十年,没有一次走通过。这篇文章写给负责依赖治理和开源可持续性的工程负责人,核心判断是,收费入口和分配规则必须落在同一个基础设施上,分开做永远做不成。
为什么自愿捐赠三十年没有解决问题
已经试过的路径全部失败在自愿二字上。GitHub Sponsors 到 2026 年 7 月累计发放刚过 1 亿美元,分布是典型的幂律,头部几人不错,中位数只有午饭钱。Tidelift 的调查里只有 3% 的维护者从基金会拿到过钱,1% 从政府拿到。Sentry 的开源承诺按每名开发者每年 2000 美元发起,启动时约 130 万美元承诺。德国主权技术基金 2022 年以来给约 60 个项目超过 2400 万欧元。终端广告 2019 年试过,开发者反对,赞助商几天内撤资,npm 随后禁掉了这种形式。供给侧的状态是,六成维护者没有报酬,这个比例在 2021、2023、2024 三年调查中完全一样,没拿钱的里六成独自维护,近六成退出过或想过退出。
企业到底在为什么付费
关键事实是钱已经在付,只是没付给写代码的人。JFrog 2025 年收入 5.32 亿美元,增长 24%,卖的是私有镜像。Snyk 约每年 3.26 亿美元做依赖漏洞扫描。Docker 2024 年收入 2.07 亿美元。Sonatype 同时运营 Maven Central 和 Nexus 镜像,按它自己的数据 Maven Central 八成六流量来自云厂商。这些公司卖的其实是同一件事,免费代码的可靠供给,付款方已经有习惯,只是收款方一直是中间层。
注册表为什么是唯一同时接触两个游戏的位置
这位作者用演化生物学里的鹰鸽博弈类比开源生态,闭源是鹰,靠独占收费,开源是鸽,把代码送出去换别人也送,稳定均衡就是 MIT、BSD、Apache 这类不索取什么的许可证,想少给一点的玩家都会被更慷慨的对手击败。2021 年 Elasticsearch 改许可证,被 fork 成 OpenSearch,2024 年悄悄改回开源。2024 年 3 月 Redis 跟进,Valkey 一周内拿到所有云厂商,2025 年 5 月 Redis 把 AGPL 加回来。代码游戏里免费必胜,因为任何人都能复制。供给游戏里赢家是默认选项,从来没有人能成功 fork 过注册表,免费镜像一条命令就能搭,企业照样付钱。Docker 2021 年 8 月开始对超过 250 名员工的公司收费,收入从 2020 年约 1200 万涨到 2024 年 2.07 亿,付费席位超百万。
提案的三部分分别是什么
第一部分,注册表计量企业使用并收费,个人、小团队、学生和开源项目免费,超过一定规模的公司订阅,定价对标现有镜像订阅,多数公司只是把已有开支换一行发票。第二部分,收入里一个固定比例作为版税,按付费客户依赖树里出现了哪些包、按有多少付费客户依赖加权,每月自动结算,不申请不答辩。第三部分落在拥有域名的那十来个注册表身上,维护者本来就有账号,收费对象是几千家大企业,找付费方和找收款方这两个最难的问题由同一个数据库解决。
风险和未解问题有哪些
按依赖分成会遇到刷量,需要按付费客户依赖树存在性加权而不是按下载量,且要接受一定作弊率。方案不改变许可证所以不会被 fork。它支付的是长尾,即那个写了小工具却进入四百家公司生产环境的维护者。2024 年 xz 事件说明供给问题已经很尖锐,一个几乎存在于每台 Linux 机器上的压缩库被植入后门,一名假贡献者用两年时间社会工程唯一无偿维护者交出密钥,后门被一名微软工程师发现,原因是 SSH 比应有的慢了半秒。
FAQ
Q 这和现有捐赠平台冲突吗。A 不冲突,方案只是把企业付给中间层的钱改道到维护者,两边解决的是不同资金来源。
Q 小企业会不会被误伤。A 个人、小团队、学生和开源项目免费,收费对象只限超过一定规模的公司。