Skip to main content

Fastifyが成功したプロジェクトである理由とは?

著者
Headshot of Oren Hacohen

Oren Hacohen

2020年12月22日

0 分で読めます

Fastifyにスポットライトを当てる今回の記事へようこそ。今日は、オープンソースのNode.jsウェブアプリケーションサーバーFastifyに積極的に貢献しているEthan Arrowoodをお迎えしました。Snyk Advisor fastify package pageでFastifyの健全性指標が非常に高いことがわかったため、その詳細をいくつか掘り下げてご紹介します。

インストールコマンド、類似パッケージ、97/100のパッケージ健全性スコアを表示したFastify v3.9.2のnpmパッケージページ。

Fastifyとは何ですか?主にどのような用途で使われていますか?

Fastifyは、オーバーヘッドを最小限に抑えながら最高の開発者体験を提供することと、強力なプラグインアーキテクチャに重点を置いたウェブフレームワークです。世界中の開発者が、サーバーサイドレンダリング、JSON、GraphQLの各APIなど、スケーラブルなHTTPアプリケーションの構築にFastifyを活用しています。利用を始めるには、スタートガイドをご覧ください。

Fastifyでのご自身の役割について、簡単に教えていただけますか?

Node.js Interactive 2017でMatteo Collinaと話した後、Fastifyへの貢献を始めました。当時はNode.jsのHTTPサーバーについてあらゆることを一から学びたいと思っていましたが、今でも学ぶことは尽きません。まずはテストカバレッジやドキュメントの改善、未解決のIssueやプルリクエストのトリアージから始めました。最近は主にTypeScript定義の書き換えに取り組み、Fastifyエコシステム全体でTypeScriptユーザーの開発者体験を向上させています。

Fastifyは人気の面で影響力のあるプロジェクトとして注目されており、週あたりのダウンロード数は13万件を超えています。成功の理由は何だと思いますか?

「影響力のあるプロジェクト」と題した人気度チャート。週あたりのダウンロード数が12月の14Kから12月の30Kへ増加しており、下部にプロジェクトの指標が表示されています。

Fastifyの成功を支えているのはコミュニティです。コントリビューターチームは拡大を続け、非常に活発に活動しています。また、開発者体験全体(最新のJavaScriptやTypeScriptも含めて)の向上に注力しているため、新しいプロジェクトを始める際に、まずFastifyを選ぶNode.js開発者が増えています。

Fastifyのお気に入りの機能は何ですか?

ずっと興味を引かれているものの一つが、基盤となるルーターfind-my-wayです。ラジックストライ木構造を基にしており、まさにその役割を見事に果たします。たとえば、紙の辞書を思い浮かべてみてください。Fastifyが特定のルートを探すときは、要求されたパスに一致するまで、文字を一つずつたどっていきます。

Fastifyの最新リリースでは、どのような新機能が追加されましたか?

Fastifyの最新リリースでは、ログのシリアライズとスキーマ置換を変更し、TypeScriptのサポートを強化しました。また、fastify-expressを使ってExpressアプリをFastify内で実行できるようになりました。さらに、ルートレベルのフックの動作を一部変更し、タイムアウトのオプションを追加しました。詳しくはV3への移行ガイドをご覧ください。

Fastifyプロジェクトの健全性を示す、良い兆候は何だと思いますか?

エコシステムの活発さです。ほぼ毎週、コミュニティのリストに新しいプラグインが追加されているようです。最近クローズされたPRをざっと見るだけでも、直近1週間でfastify-redis-channels、fastify-custom-healthcheck、fastify-envalid、fastify-get-headが追加されています。さらに、コントリビューターチームに加わって、プロジェクトのあらゆる側面で新機能の開発を支援する人も増えています。その好例が、OpenTelemetryプラグインのリクエストです。数か月後、コミュニティメンバーの一人がfastify-opentelemetryプラグインを提供し、コミュニティのエコシステムプラグイン一覧に加わりました。

開発者がFastifyを選ぶ理由は何ですか?開発者が移行してくる他のプロジェクトはありますか?

データ検証が標準で備わっていることは、開発者にとって大きな魅力の一つです。Fastifyならではのその他のAPI機能に加えて、ユーザーはコミュニティも高く評価しています。Discordやヘルプリポジトリでは、多くの人が積極的に助け合っています。

ユーザーの多くはExpressから移行してきます。fastify-expressプラグインによって、できるだけ手軽に移行できるようにしました。このプラグインはFastifyにExpressとの完全な互換性をもたらし、Expressアプリを少しずつ移行できるようにします。

オープンソースプロジェクトのメンテナーとして、現在最大の課題は何ですか?

時間です。Microsoftでソフトウェアエンジニアとしてフルタイムで働いているため、オープンソースに充てられるのは勤務時間の一部だけです。正直なところ、やりたいことすべてに取り組むには時間が足りないので、優先順位をつけて少しずつ進めるようにしています。誤解しないでほしいのですが、仕事は大好きですし、仕事があるからこそオープンソースにも取り組めています。結局のところ、大切なのはバランスです。

特にお気に入りのオープンソースプロジェクト上位5つを教えてください。

Node.js、Electron、TypeScript、Undici、そしてもちろんFastifyです!

オープンソースへの貢献を始めるための、とっておきのアドバイスは?

DiscordでFastifyコミュニティに参加し、貢献できる機会をIssue一覧で探してみてください。

続きを読む

illustration hero ai
Blog

PHPが重大な未認証RCEの脆弱性2件を修正(CVE-2026-109618、CVE-2026-109619):今すぐアップデート

PHPのリクエスト処理に重大な脆弱性が2件あり、未認証のリモートコード実行につながるおそれがあります。修正版にアップグレードするか、旧バージョンにはベンダー提供のバックポートを適用してください。

blog feature ai lilac
Blog

エージェント型修正で脆弱性バックログをプルリクエストに変える

Evo Remediation Agentがオープンプレビューで利用可能になり、Evo Agentic AppSecに依存関係の自動解決機能が加わりました。AppSecチームは継続的な修正キャンペーンを実施できるようになりました

AI Background min crop
Blog

AIが、あなたが受け入れてきたあらゆるリスクを一気に顕在化させる:AI Security Panel: Unfilteredから得た7つの洞察

AIによって攻撃はより安価かつ高速になり、組織がすでに抱えているリスクが露呈しています。4人のセキュリティリーダーが、機械の速度に対応する防御と迅速な修復が今不可欠である理由を語ります。