Qu’est-ce qui fait le succès de Fastify ?
Oren Hacohen
22 décembre 2020
0 minutes de lectureBienvenue dans notre présentation de Fastify. Aujourd’hui, nous accueillons Ethan Arrowood, un contributeur actif au serveur d’applications web open source pour Node.js Fastify. Nous avons constaté que Fastify obtient d’excellents résultats en matière de santé sur la page du package fastify de Snyk Advisor et souhaitons examiner avec vous quelques-uns de ces indicateurs en détail.

Qu’est-ce que Fastify ? À quoi sert principalement ce package ?
Fastify est un framework web qui met l’accent sur une expérience de développement optimale, avec une surcharge minimale et une architecture de plugins puissante. Des développeurs du monde entier utilisent Fastify pour créer des applications HTTP évolutives : des API rendues côté serveur, JSON ou GraphQL. Pour bien démarrer, consultez notre guide de démarrage.
Pourriez-vous nous décrire brièvement votre rôle au sein de Fastify ?
J’ai commencé à contribuer à Fastify après avoir discuté avec Matteo Collina lors de Node.js Interactive 2017. À l’époque, je voulais me plonger dans l’univers des serveurs HTTP Node.js et tout apprendre à leur sujet ; et aujourd’hui encore, je continue d’en apprendre davantage ! J’ai commencé par améliorer la couverture des tests et la documentation, ainsi que par assurer le triage des problèmes ouverts et des pull requests. Plus récemment, je me suis principalement consacré à la réécriture des définitions TypeScript afin d’améliorer l’expérience de développement des utilisateurs de TypeScript dans tout l’écosystème Fastify.
Nous avons identifié Fastify comme un projet influent en raison de sa popularité : il enregistre plus de 130 000 téléchargements par semaine. Selon vous, qu’est-ce qui a fait son succès ?

Le succès de Fastify repose sur sa communauté. L’équipe de contributeurs ne cesse de s’agrandir et est très active. De plus, en nous concentrant sur l’amélioration de l’expérience de développement globale (y compris pour JavaScript moderne et TypeScript), nous faisons en sorte que davantage de développeurs Node.js choisissent Fastify en premier lorsqu’ils démarrent un nouveau projet.
Quelles sont vos fonctionnalités préférées de Fastify ?
L’un des éléments qui m’a toujours intrigué est le routeur sous-jacent : find-my-way. Il repose sur une structure de données d’arbre radix et excelle vraiment dans son domaine. Pour vous donner une idée, imaginez un dictionnaire papier. Lorsque Fastify doit trouver une route, il parcourt le chemin demandé caractère par caractère jusqu’à trouver une correspondance.
Quelles sont les nouveautés de la dernière version de Fastify ?
Dans la dernière version de Fastify, nous avons modifié la sérialisation des journaux et la substitution des schémas, ajouté une meilleure prise en charge de TypeScript et permis d’exécuter des applications Express dans Fastify à l’aide de fastify-express. Nous avons également modifié le comportement de certains hooks au niveau des routes et ajouté des options de délai d’attente. Pour en savoir plus, consultez notre guide de migration vers la V3.
À votre avis, quels sont les bons indicateurs de la santé du projet Fastify ?
L’activité de notre écosystème. Presque chaque semaine, un nouveau plugin rejoint la liste de notre communauté. Un rapide coup d’œil à nos PR récemment clôturées montre que nous avons ajouté fastify-redis-channels, fastify-custom-healthcheck, fastify-envalid et fastify-get-head au cours de la dernière semaine seulement. De plus en plus de personnes rejoignent l’équipe de contributeurs et nous aident à faire évoluer le projet dans tous ses aspects. Un excellent exemple : une demande de plugin OpenTelemetry. Quelques mois plus tard, l’un des membres de notre communauté a contribué son plugin fastify-opentelemetry, qui a été ajouté à notre liste de plugins communautaires de l’écosystème.
Pourquoi les développeurs choisissent-ils Fastify ? Y a-t-il d’autres projets depuis lesquels vous voyez les développeurs migrer ?
La validation des données de première classe est l’une de nos fonctionnalités les plus attrayantes pour les développeurs. En plus de toutes les autres fonctionnalités d’API qui rendent Fastify unique, nos utilisateurs apprécient beaucoup notre communauté. Beaucoup s’entraident activement sur notre serveur Discord et dans notre dépôt d’assistance.
Beaucoup de nos utilisateurs migrent depuis Express. Grâce au plugin fastify-express, nous avons rendu cette transition aussi simple que possible. Il assure une compatibilité complète avec Express dans Fastify et permet aux utilisateurs de migrer progressivement leurs applications Express, morceau par morceau.
Quel est le plus grand défi auquel vous êtes confronté aujourd’hui en tant que responsable d’un projet open source ?
Le temps. Je travaille à temps plein comme ingénieur logiciel chez Microsoft et ne peux consacrer qu’une partie de mes journées de travail à l’open source. Ce n’est honnêtement pas suffisant pour faire tout ce que je voudrais ; je dois donc faire de mon mieux pour établir des priorités et avancer progressivement. Mais ne vous méprenez pas : j’adore mon travail, et c’est lui qui me permet de contribuer à l’open source. Au bout du compte, tout est une question d’équilibre.
Quels sont vos 5 projets open source préférés ?
Node.js, Electron, TypeScript, Undici et, bien sûr, Fastify !
Quel est le meilleur conseil pour se lancer dans la contribution à l’open source ?
Rejoignez la communauté Fastify sur Discord et consultez notre liste de problèmes pour trouver des occasions de contribuer.