Skip to main content

Was macht Fastify zu einem erfolgreichen Projekt?

Artikel von
Headshot of Oren Hacohen

Oren Hacohen

22. Dezember 2020

0 Min. Lesezeit

Willkommen zu unserem Spotlight auf Fastify. Heute begrüßen wir Ethan Arrowood, einen aktiven Mitwirkenden am Open-Source-Node.js-Webanwendungsserver Fastify. Uns ist aufgefallen, dass Fastify bei den Gesundheitsmetriken auf der Snyk Advisor fastify package page sehr hohe Werte erzielt. Deshalb möchten wir einige dieser Kennzahlen gemeinsam mit Ihnen genauer unter die Lupe nehmen.

npm-Paket-Seite von Fastify v3.9.2 mit Installationsbefehl, ähnlichen Paketen und einem Paket-Health-Score von 97/100.

Was ist Fastify? Wofür wird das Paket hauptsächlich verwendet?

Fastify ist ein Web-Framework, dessen Schwerpunkt auf einer optimalen Developer Experience bei möglichst geringem Overhead und einer leistungsstarken Plugin-Architektur liegt. Entwickler auf der ganzen Welt nutzen Fastify, um skalierbare HTTP-Anwendungen zu erstellen – als serverseitig gerenderte Anwendungen sowie als JSON- oder GraphQL-APIs. Am besten starten Sie mit unserem Leitfaden für den Einstieg.

Können Sie uns in wenigen Sätzen etwas über Ihre Rolle innerhalb von Fastify erzählen?

Nachdem ich mich 2017 bei Node.js Interactive mit Matteo Collina unterhalten hatte, begann ich, zu Fastify beizutragen. Damals wollte ich mich kopfüber in alles stürzen, was es über Node.js-HTTP-Server zu wissen gab – und auch heute lerne ich noch dazu! Zunächst verbesserte ich die Testabdeckung und Dokumentation und kümmerte mich um die Triage offener Issues und Pull Requests. In jüngerer Zeit habe ich mich vor allem auf die Neufassung der TypeScript-Definitionen konzentriert, um die Developer Experience für unsere TypeScript-Nutzer im gesamten Fastify-Ökosystem zu verbessern.

Wir haben Fastify als einflussreiches Projekt eingestuft, was die Beliebtheit angeht: Das Projekt verzeichnet über 130.000 Downloads pro Woche. Was hat Fastify Ihrer Meinung nach erfolgreich gemacht?

Popularitätsdiagramm mit der Beschriftung „Einflussreiches Projekt“: Die wöchentlichen Downloads steigen von 14.000 im Dezember auf 30.000 im Dezember. Darunter stehen Projektkennzahlen.

Der Erfolg von Fastify ist seiner Community zu verdanken. Das Team der Mitwirkenden wächst stetig und ist sehr aktiv. Außerdem entscheiden sich immer mehr Node.js-Entwickler zuerst für Fastify, wenn sie ein neues Projekt starten – auch weil wir uns darauf konzentrieren, die Developer Experience insgesamt zu verbessern, sowohl für modernes JavaScript als auch für TypeScript.

Welche Features von Fastify gefallen Ihnen am besten?

Eine Komponente, die mich schon immer fasziniert hat, ist der zugrunde liegende Router: find-my-way. Er basiert auf einer Radix-Trie-Datenstruktur und ist für seine Aufgabe wirklich hervorragend geeignet. Stellen Sie sich zur Veranschaulichung ein gedrucktes Wörterbuch vor. Wenn Fastify eine bestimmte Route finden soll, geht es Zeichen für Zeichen vor, bis der angefragte Pfad übereinstimmt.

Welche neuen Features gibt es in der aktuellen Fastify-Version?

In der aktuellen Fastify-Version haben wir die Serialisierung von Logs und die Schema-Substitution geändert, die TypeScript-Unterstützung verbessert und mit fastify-express die Möglichkeit geschaffen, Express-Apps in Fastify auszuführen. Außerdem haben wir das Verhalten einiger Hooks auf Routenebene angepasst und Timeout-Optionen hinzugefügt. Eine vollständige Liste finden Sie in unserem Migrationsleitfaden für V3.

Welche Signale zeigen Ihrer Meinung nach, dass das Fastify-Projekt gesund ist?

Die Aktivität in unserem Ökosystem. Gefühlt kommt fast jede Woche ein weiteres Plugin zu unserer Community-Liste hinzu. Ein kurzer Blick auf unsere kürzlich geschlossenen PRs zeigt, dass wir allein in der vergangenen Woche fastify-redis-channels, fastify-custom-healthcheck, fastify-envalid und fastify-get-head hinzugefügt haben. Darüber hinaus stoßen immer mehr Menschen zum Team der Mitwirkenden und helfen uns, neue Features in allen Bereichen des Projekts voranzubringen. Ein gutes Beispiel dafür war eine Anfrage nach einem OpenTelemetry-Plugin. Einige Monate später steuerte ein Mitglied unserer Community das fastify-opentelemetry-Plugin bei, das wir in unsere Liste der Community-Plugins im Ökosystem aufgenommen haben.

Warum entscheiden sich Entwickler für Fastify? Gibt es andere Projekte, von denen Entwickler Ihrer Beobachtung nach migrieren?

Die erstklassige Datenvalidierung ist eines unserer attraktivsten Features für Entwickler. Neben all den anderen API-Features, die Fastify einzigartig machen, schätzen unsere Nutzer unsere Community sehr. Viele helfen sich gegenseitig aktiv auf unserem Discord und in unserem Help-Repository.

Viele unserer Nutzer migrieren von Express. Mit dem Plugin fastify-express haben wir diesen Wechsel so einfach wie möglich gemacht. Es bietet vollständige Express-Kompatibilität für Fastify und ermöglicht es Nutzern, ihre Express-Apps nach und nach zu migrieren.

Was ist heute die größte Herausforderung für Maintainer eines Open-Source-Projekts?

Zeit. Ich arbeite bei Microsoft Vollzeit als Softwareentwickler und kann nur einen Teil meines Arbeitstags für Open Source aufwenden. Ehrlich gesagt reicht die Zeit nicht aus, um alles zu erledigen, was ich gerne tun würde. Deshalb muss ich möglichst gut priorisieren und die Dinge nach und nach angehen. Aber verstehen Sie mich nicht falsch: Ich liebe meinen Job, und er ermöglicht es mir überhaupt erst, an Open-Source-Projekten zu arbeiten. Letztlich kommt es auf die Balance an.

Was sind Ihre fünf liebsten Open-Source-Projekte?

Node.js, Electron, TypeScript, Undici und natürlich Fastify!

Was ist Ihr bester Tipp für den Einstieg als Mitwirkender an Open-Source-Projekten?

Treten Sie der Fastify-Community auf Discord bei und sehen Sie sich unsere Issue-Liste an, um Möglichkeiten zur Mitarbeit zu finden.