npm install ws,你的node_modules瞬间膨胀1.2MB。为了发送一条{"type": "ping"},你背上了14个依赖包。
这是2011年写的代码在2026年的现状。开发者Rabbx花了整个周末,把它压缩到了2.5KB。
打开网易新闻 查看精彩图片
新项目@rabbx/ws的参数很极端:6.4KB压缩后,2.5KB gzip,零依赖,可摇树优化,无副作用。API还是你熟悉的那套——new RbxSocket(url)、on('open')、on('message'),但运行环境彻底换了。
ws的生态位正在崩塌。Cloudflare Workers给50ms CPU时间,import 'ws'吃掉118ms冷启动,代码还没跑就超时了。Bun需要兼容层,Deno要加npm:前缀,边缘运行时全灭。根源在于ws至今捆绑着bufferutil和utf-8-validate的原生绑定,这些2011年的设计在边缘计算时代成了累赘。
迁移成本被压到30秒。卸载ws,安装@rabbx/ws,import语句换一行,客户端完全是即插即用。服务端需要多一步——用WebSocketPair()解构出客户端和服务端,再包一层RbxSocketServer。
作者放出了生产数据:每天200万+消息,零崩溃,8ms冷启动。这句slogan很刺耳:"你的依赖有依赖,我们的工具没有依赖。"
他们正在做一系列边缘原生JS原语,@rabbx/ws只是第一个。GitHub仓库已经公开,作者的原话是:"来跑分,来搞崩,来评论区喷我。"
最后一个问题抛给读者:你node_modules里最重的包是哪个?下一个被重写的可能就是它。
热门跟贴