开发过Node.js后端的人都有同感:一个API端点要维护三份东西——Zod校验逻辑、TypeScript类型声明、OpenAPI文档。改个字段?三处一起改,漏一处就漂移。
4月21日,开发者发布了Axiomify的初版——用一份Zod schema同时解决校验、类型和文档。17天后,v5版本上线,核心目标从"能用"变成"快且稳"。
Node.js集群部署有个隐藏坑。默认的SCHED_RR模式下,主进程接管所有TCP连接,再IPC转发给工作进程。加机器?主进程成了单线程瓶颈,IPC开销同步上涨。
v5的listenClustered()换了条路:cluster.schedulingPolicy = cluster.SCHED_NONE,让每个工作进程直接绑定独立socket,配合reusePort参数。Linux内核自己在底层分发连接,请求热路径上零IPC。8核实测中,这种"内核级负载均衡"把吞吐量顶到了新高度。
更隐蔽的优化在验证层。之前每个请求要跑两遍:AJV做结构校验,再无条件执行schema.parse()。v5在启动时扫描schema,只有检测到.transform()、.default()或.coerce时才保留第二遍。纯对象schema直接省掉这步,验证路由吞吐量提升15-25%——而API里大部分路由都是验证路由。
适配器阵容从4个扩到5个。新增@axiomify/native基于uWebSockets.js,API、schema、OpenAPI调用完全不变,换行adapter代码就能换性能。安全包@axiomify/security打包了XSS防护、HTTP参数污染规范化、SQL注入启发式检测和原型污染阻断。指纹包@axiomify/fingerprint提供服务端请求指纹,带置信度评分,不用前端JS也能做机器人和欺诈识别。
整个monorepo从17个包涨到20个。开发者说,第一阶段解决的是"写代码爽",过去17天解决的是"跑起来稳"。
热门跟贴