Fastify 是一个开源、低性能开销的 Node.js Web 框架。Fastify v3 引入了在 Fastify 中运行 Express 应用的功能、添加了对日志序列化和模式替换的改善,并且提供了对 TypeScript 定义的更好的支持。
Fastify 依然关注轻量级的性能。按照Fastify最新的性能指标,相对于其他的框架,Fastify 每秒钟能够服务于更多的请求,这些其他的框架包括 Koa、Restify、hapi、Express 和内置的 http.Server。Fastify 3.0 版本比早期的 2.x 版本每秒钟的处理能力翻了一倍。
Fastify v3 改善了其类型系统,以支持通用的约束和默认值,以及更高效的模式类型定义。
fastify-express包提供了 Fastify 中完备的 Express 兼容性支持,以便于从 Express 到 Fastify 的迁移。
校验和序列化在 Fastify 3 得到了显著改善。setSchemaCompiler
和setSchemaResolver
选项替换成了setValidatorCompiler
,以支持进一步的工具优化。对preParsing
和其他 hook 的变更提升了性能和一致性,并利用了更多 Fastify 的内部 API,如 Fastify requests。类似的,Fastify 日志序列化器现在使用了 Fastify Request 和 Reply 对象,以取代原生的对象。现有的 Fastify 用户应该参考Fastify 3.0迁移指南来获取完整的更新列表。
Fastify 现在包含136个官方插件,涵盖的特性包括 Next.js 服务器渲染、WebSockets、Webpack 等。对于 3.0 发布版本来说,支持所有的插件是重要优先级的任务。正如 Elastic 的软件工程师兼 Fastify 的贡献者Tomas Della Vedova所述:
我对 @fastifyjs v3 发布感到非常开心。你现在可能已经知道,我们有一个很大的插件生态系统。在 v2 版本的时候,我们当时并没有明确的升级计划,所以我们只是发布了 Fastify v2,然后慢慢升级所有的插件。今年,我们开始就预发布了所有的插件,所以用户可以通过安装其应用中每个组件的 @.next 版本来测试 Fastify v3。在发布的时候,我们公开了最终版本的 Fastify v3,我和 @matteocollina 发布了所有的插件,所以新老用户在升级的时候不会遇到任何障碍或难以预料的缺陷。明年会继续改善:所有的这些步骤都将会自动化。
Fastify 是一个开源的软件,可以基于 MIT 许可证协议获取,它是 OpenJS 的一部分。欢迎为 Fastify 做出贡献,需遵循贡献指南和代码准则。
原文链接:
Fastify 3.0 Improves Performance, Logging, Schema, and TypeScript Support
评论