Categories
程式開發

Fastify 3.0改善了性能、日志、模式以及对TypeScript的支持


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得到了显著改善。setSchemaCompilersetSchemaResolver选项替换成了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