10 年間のインパクト: npm パッケージが 10 億ダウンロードを達成し、JavaScript を形作った方法

では JavaScriptNode.js 世界では、いくつかのパッケージは不可欠です。毎日何百万回もダウンロードされ、世界中のアプリを動かしています。これらのツールの背後には、オープンソースの品質に重点を置く開発者がいます。今日は、JavaScript エコシステムの重要な部分となった npm パッケージの構築と保守に私たちのチームがどのように貢献しているかを紹介します。

私たちを信頼する先駆者たち: アイザック・Z・シュルーターとフォワードメール

私たちは誇りに思っています アイザック・Z・シュルーター (GitHub: isaacs)をユーザーとして作成しました。Isaacが作成しました 海抜 そして建設に貢献した Node.js彼が Forward Email を信頼していることは、当社が品質とセキュリティに重点を置いていることを示しています。Isaac は、izs.me を含むいくつかのドメインで Forward Email を使用しています。

アイザックのJavaScriptへの影響は大きい。2009年、彼はNode.jsの可能性に最初に気付いた一人であり、 ライアン・ダールこのプラットフォームを作ったのはアイザックだ。 インクリメント誌のインタビュー: 「サーバーサイド JS を実現する方法を模索している少数の人々が集まるこの非常に小さなコミュニティの中で、Ryan Dahl が Node を発表しました。これは明らかに正しいアプローチでした。私はこれに賛同し、2009 年の中ごろから深く関わるようになりました。」

[!NOTE] Node.js の歴史に興味がある方には、その開発を記録した優れたドキュメンタリーがあります。 Node.js のストーリーNode.js について後悔していること 10 選 - Ryan Dahlライアン・ダールの 個人ウェブサイト 彼の作品に関する貴重な洞察も含まれています。

npm の創設から Node.js のリーダーシップまで

アイザックは2009年9月にnpmを作成し、2010年初頭に最初の使用可能なバージョンをリリースしました。このパッケージマネージャはNode.jsの重要なニーズを満たし、開発者がコードを簡単に共有および再利用できるようにしました。 Node.js の Wikipedia ページ「2010 年 1 月に、Node.js 環境用の npm と呼ばれるパッケージ マネージャーが導入されました。パッケージ マネージャーを使用すると、プログラマーは Node.js パッケージとそれに付随するソース コードを公開および共有することができ、パッケージのインストール、更新、アンインストールを簡素化するように設計されています。」

2012年1月にライアン・ダールがNode.jsから退いた後、アイザックがプロジェクトリーダーに就任しました。 彼の要約彼は、「CommonJS モジュール システム、ファイル システム API、ストリームなど、いくつかの基本的な Node.js コア API の開発を主導」し、「プロジェクトの BDFL (Benevolent Dictator For Life) として 2 年間活動し、Node.js バージョン v0.6 から v0.10 までの品質と信頼性の高いビルド プロセスの向上を実現しました。」

アイザックは、重要な成長期を通じて Node.js を導き、現在でもプラットフォームを形作る標準を確立しました。その後、彼は 2014 年に npm, Inc. を設立し、以前は独自に運営していた npm レジストリのサポートを開始しました。

私たちは、JavaScript への多大な貢献に対して Isaac に感謝し、彼が作成した多くのパッケージを引き続き使用しています。彼の仕事は、ソフトウェアの構築方法や、世界中の何百万人もの開発者がコードを共有する方法を変えました。

コードの背後にある建築家: ニック・ボーの旅

私たちのオープンソースの成功の中心にいるのは、Forward Email の創設者兼オーナーである Nick Baugh です。彼の JavaScript での活動は 20 年近くにわたり、数え切れないほど多くの開発者がアプリを構築する方法に影響を与えてきました。彼のオープンソースの旅は、技術的なスキルとコミュニティのリーダーシップの両方を示しています。

Express 技術委員会とコア貢献

ニックのウェブフレームワークの専門知識により、彼は エクスプレス技術委員会、そこで彼は最も使用されているNode.jsフレームワークの1つに貢献しました。ニックは現在、非アクティブメンバーとしてリストされています。 Expressコミュニティページ.

[!重要] Express は元々、Node.js エコシステムの多くを形作ってきたオープンソースの貢献者である TJ Holowaychuk によって作成されました。私たちは TJ の基礎的な仕事に感謝し、彼の 休憩を取る決断 彼の広範なオープンソースへの貢献から。

のメンバーとして エクスプレス技術委員会ニックは、問題を明確にするなど、細部にまで細心の注意を払いました。 req.originalUrl ドキュメント化とマルチパートフォームの処理に関する問題の修正。

Koaフレームワークへの貢献

ニックの Koaフレームワーク—Express のモダンで軽量な代替品で、これも TJ Holowaychuk によって作成されました—は、より優れた Web 開発ツールに対する彼の取り組みをさらに示しています。彼の Koa への貢献には、プル リクエストによる問題とコードの両方が含まれており、エラー処理、コンテンツ タイプ管理、ドキュメントの改善に対処しています。

Express と Koa の両方での彼の仕事は、Node.js Web 開発に対する独自の視点をもたらし、複数のフレームワーク エコシステムで適切に動作するパッケージをチームが作成するのに役立っています。

個人の貢献者から組織のリーダーへ

既存のプロジェクトを支援することから始まったものが、パッケージエコシステム全体の作成と維持へと成長しました。ニックは、以下を含む複数のGitHub組織を設立しました。 キャビン, スパムスキャナー, 前方のメール, しましょう、 と ブリーそれぞれが JavaScript コミュニティの特定のニーズを解決します。

貢献者からリーダーへのこの変化は、実際の問題を解決する、適切に設計されたソフトウェアに対する Nick のビジョンを示しています。関連するパッケージを重点的な GitHub 組織の下に整理することで、彼は、より広範な開発者コミュニティのためにモジュール性と柔軟性を維持しながら連携するツール エコシステムを構築しました。

GitHub 組織: イノベーションのエコシステム

私たちは、JavaScript の特定のニーズを解決する、集中的な GitHub 組織を中心にオープンソースの取り組みを組織しています。この構造により、モジュール性を維持しながら連携して機能するまとまりのあるパッケージ ファミリが作成されます。

Cabin: 最新のアプリケーション向けの構造化ログ

キャビンの構成 シンプルで強力なアプリログの考え方です。 cabin このパッケージには、GitHub で約 900 個のスターが付けられており、毎週 100,000 回以上ダウンロードされています[^1]。Cabin は、Sentry、LogDNA、Papertrail などの一般的なサービスと連携する構造化ログ機能を提供します。

Cabinが特別なのは、その考え抜かれたAPIとプラグインシステムです。次のようなパッケージをサポートしています。 axe Expressミドルウェアと parse-request HTTP リクエスト解析では、孤立したツールではなく完全なソリューションへの取り組みを示しています。

bson-objectid パッケージは特筆に値します。わずか 2 か月で 170 万回以上ダウンロードされています[^2]。この軽量な MongoDB ObjectID 実装は、MongoDB に完全に依存せずに ID を必要とする開発者にとって頼りになる存在となっています。

スパムスキャナ: メールの不正使用と戦う

スパムスキャナ組織 実際の問題を解決するという私たちの取り組みを示しています。 spamscanner パッケージは高度な電子メールスパム検出機能を提供しますが、 url-regex-safe 驚くほどの採用率を誇るパッケージです。

2か月間で120万回以上ダウンロードされ[^3]、 url-regex-safe 他のURL検出正規表現における重大なセキュリティ問題を修正します。このパッケージは、オープンソースに対する私たちのアプローチを示しています。共通の問題(この場合は、 やり直し URL 検証の脆弱性を修正し、強固なソリューションを作成し、慎重に保守します。

Bree: ワーカー スレッドを使用した最新のジョブ スケジューリング

ブリー組織 Node.jsの一般的な課題である信頼性の高いジョブスケジューリングに対する私たちの答えです。 bree 3,100 を超える GitHub スターを獲得したこのパッケージは、Node.js ワーカー スレッドを使用してパフォーマンスと信頼性を向上させる最新のジョブ スケジューラを提供します。

[!NOTE] Breeは、私たちがメンテナンスに協力した後に作成されました 議題学んだ教訓を適用して、より優れたジョブ スケジューラを構築しました。アジェンダへの貢献により、ジョブ スケジューリングを改善する方法を見つけることができました。

Bree が Agenda などの他のスケジューラーと異なる点:

  • 外部依存なし: MongoDB を必要とする Agenda とは異なり、Bree ではジョブの状態を管理するために Redis や MongoDB は必要ありません。
  • ワーカースレッド: Bree はサンドボックス化されたプロセスに Node.js ワーカー スレッドを使用し、より優れた分離とパフォーマンスを実現します。
  • シンプルなAPIBree はシンプルでありながら詳細な制御を提供し、複雑なスケジュールのニーズをより簡単に実装できるようにします。
  • 組み込みサポート: 正常なリロード、cron ジョブ、日付、人間にわかりやすい時間などがデフォルトで含まれています。

ブリーは forwardemail.net電子メールの処理、クリーンアップ、定期メンテナンスなどの重要なバックグラウンド タスクを処理します。Forward Email で Bree を使用することは、高い信頼性基準を満たす独自のツールを運用環境で使用するための当社の取り組みを示しています。

私たちは、次のような他の優れたワーカースレッドパッケージも使用し、高く評価しています。 プール HTTPクライアントは 11 11ピシナは、ブリーと同様に、効率的なタスク処理のためにNode.jsワーカースレッドを使用しています。 マシュー・ヒルundici と piscina の両方をメンテナンスしている Matteo は、Node.js への多大な貢献に対して感謝の意を表します。Matteo は Node.js 技術運営委員会のメンバーであり、Node.js の HTTP クライアント機能を大幅に改善しました。

メール転送: オープンソースのメールインフラストラクチャ

私たちの最も野心的なプロジェクトは 前方のメールは、メール転送、ストレージ、APIサービスを提供するオープンソースのメールサービスです。メインリポジトリには1,100を超えるGitHubスター[^4]が付いており、プロプライエタリなメールサービスに代わるこのサービスがコミュニティから高く評価されていることがわかります。

preview-email この組織のパッケージは、2か月間で250万回以上ダウンロードされ[^5]、電子メールテンプレートを扱う開発者にとって不可欠なツールとなっています。開発中に電子メールをプレビューする簡単な方法を提供することで、電子メール対応アプリケーションを構築する際の一般的な問題点を解決します。

Lad: 必須の Koa ユーティリティとツール

若者組織 Koa フレームワーク エコシステムの強化に主に焦点を当てた、必須のユーティリティとツールのコレクションを提供します。これらのパッケージは、Web 開発における一般的な課題を解決し、独立して有用でありながらシームレスに連携するように設計されています。

koa-better-error-handler: Koa のエラー処理の改善

koa-better-error-handler Koaアプリケーションのためのより優れたエラー処理ソリューションを提供します。50以上のGitHubスターを獲得したこのパッケージは、 ctx.throw Koa の組み込みエラー ハンドラーのいくつかの制限に対処しながら、ユーザー フレンドリなエラー メッセージを生成します。

  • Node.js DNSエラー、Mongooseエラー、Redisエラーを検出し、適切に処理します。
  • 用途 ブーム 一貫性のある、適切にフォーマットされたエラー応答を作成するため
  • ヘッダーを保存します(Koaの組み込みハンドラーとは異なります)
  • デフォルトの500ではなく適切なステータスコードを維持する
  • フラッシュメッセージとセッション保存をサポート
  • 検証エラーのHTMLエラーリストを提供します
  • 複数のレスポンスタイプ(HTML、JSON、プレーンテキスト)をサポート

このパッケージは、特に以下のものと一緒に使用すると効果的です。 koa-404-handler Koa アプリケーションにおける包括的なエラー管理。

パスポート:若者の認証

@ladjs/passport 人気の Passport.js 認証ミドルウェアを、最新の Web アプリケーション向けの特別な機能強化で拡張します。このパッケージは、複数の認証戦略をすぐにサポートします。

  • 電子メールによるローカル認証
  • Apple でサインインする
  • GitHub 認証
  • Google認証
  • ワンタイムパスワード(OTP)認証

このパッケージは高度にカスタマイズ可能で、開発者はアプリケーションの要件に合わせてフィールド名やフレーズを調整できます。ユーザー管理のために Mongoose とシームレスに統合するように設計されているため、堅牢な認証を必要とする Koa ベースのアプリケーションに最適なソリューションです。

graceful: エレガントなアプリケーションシャットダウン

@ladjs/graceful Node.js アプリケーションを正常にシャットダウンするという重要な課題を解決します。70 を超える GitHub スターを獲得したこのパッケージは、データを失ったり接続がハングしたりすることなく、アプリケーションを正常に終了できるようにします。主な機能は次のとおりです。

  • HTTP サーバー (Express/Koa/Fastify) を正常に終了するためのサポート
  • データベース接続のクリーンシャットダウン (MongoDB/Mongoose)
  • Redisクライアントの適切な終了
  • Breeジョブスケジューラの取り扱い
  • カスタムシャットダウンハンドラのサポート
  • 設定可能なタイムアウト設定
  • ログシステムとの統合

このパッケージは、予期しないシャットダウンによってデータの損失や破損が発生する可能性がある実稼働アプリケーションに不可欠です。適切なシャットダウン手順を実装することで、 @ladjs/graceful アプリケーションの信頼性と安定性を確保するのに役立ちます。

Upptime: オープンソースのアップタイム監視

稼働時間組織 透明性のあるオープンソースの監視への取り組みを表しています。 upptime このリポジトリには 13,000 を超える GitHub スターがあり、私たちが貢献している最も人気のあるプロジェクトの 1 つとなっています。Upptime は、サーバーなしで完全に動作する、GitHub を利用したアップタイム モニターとステータス ページを提供します。

私たちはUpptimeを自社のステータスページに使用しています。 https://status.forwardemail.net ソースコードは以下から入手可能 https://github.com/forwardemail/status.forwardemail.net.

Upptime が特別なのは、そのアーキテクチャです。

  • 100%オープンソース: すべてのコンポーネントは完全にオープンソースであり、カスタマイズ可能です。
  • GitHub によって提供: GitHub Actions、Issue、Pages を活用したサーバーレス監視ソリューションです。
  • サーバーは不要: 従来の監視ツールとは異なり、Upptime ではサーバーを実行したり保守したりする必要はありません。
  • 自動ステータスページ: GitHub Pages でホストできる美しいステータス ページを生成します。
  • 強力な通知: 電子メール、SMS、Slack などのさまざまな通知チャネルと統合します。

ユーザーエクスペリエンスを向上させるために、 @octokit/コア forwardemail.net のコードベースに組み込むことで、リアルタイムのステータス更新やインシデントを当社の Web サイトに直接表示できます。この統合により、当社のスタック全体 (Web サイト、API、MongoDB、Redis、SQLite、SMTP、POP3、IMAP、Bree など) で問題が発生した場合でも、インスタント トースト通知、バッジ アイコンの変更、警告色などにより、ユーザーに明確な透明性が提供されます。

@octokit/core ライブラリを使用すると、Upptime GitHub リポジトリからリアルタイム データを取得して処理し、ユーザーフレンドリーな方法で表示できます。サービスが停止したりパフォーマンスが低下したりすると、メイン アプリケーションを離れることなく、視覚的なインジケーターを通じてユーザーにすぐに通知されます。このシームレスな統合により、ユーザーは常にシステムの状態に関する最新情報を入手でき、透明性と信頼性が向上します。

Upptime は、サービスを監視し、ユーザーにステータスを伝えるための透明で信頼性の高い方法を求めている何百もの組織に採用されています。このプロジェクトの成功は、既存のインフラストラクチャ (この場合は GitHub) を活用して一般的な問題を新しい方法で解決するツールを構築することの威力を示しています。

フォワードメールエコシステムへの貢献

当社のオープンソース パッケージは世界中の開発者によって使用されているだけでなく、当社独自のメール転送サービスの基盤にもなっています。これらのツールの作成者とユーザーという二重の役割により、当社は実際のアプリケーションについて独自の視点を持ち、継続的な改善を推進しています。

パッケージから生産まで

個々のパッケージから統合された生産システムに至るまでには、慎重な統合と拡張が必要です。Forward Email の場合、このプロセスには次のものが含まれます。

  • カスタム拡張機能: 独自の要件に対応するオープン ソース パッケージへの電子メール固有の拡張機能の構築。
  • 統合パターン: これらのパッケージが実稼働環境でどのように相互作用するかを示すパターンを開発します。
  • パフォーマンスの最適化: 大規模に発生した場合にのみ発生するパフォーマンスのボトルネックを特定して対処します。
  • セキュリティ強化: 電子メールの処理とユーザー データ保護に特化した追加のセキュリティ レイヤーを追加します。

この作業は、コア パッケージ自体を超えた数千時間の開発を意味し、その結果、当社のオープン ソース貢献を最大限に活用した堅牢で安全な電子メール サービスが実現しました。

フィードバックループ

おそらく、本番環境で独自のパッケージを使用することの最も価値のある側面は、それが作り出すフィードバック ループです。Forward Email で制限やエッジ ケースに遭遇した場合、ローカルでパッチを当てるだけでなく、基盤となるパッケージを改善して、サービスとより広範なコミュニティの両方に利益をもたらします。

このアプローチにより、数多くの改善が実現しました。

  • ブリーの優雅なシャットダウン: Forward Email のゼロダウンタイム展開の必要性により、Bree の正常なシャットダウン機能が強化されました。
  • スパムスキャナのパターン認識: 転送メールで遭遇した実際のスパム パターンが、スパム スキャナーの検出アルゴリズムに反映されています。
  • キャビンのパフォーマンス最適化: 運用環境での大量ログ記録により、すべてのユーザーにメリットをもたらす Cabin の最適化の機会が明らかになりました。

オープンソースの作業と実稼働サービスの間でこの好循環を維持することにより、当社のパッケージは理論的な実装ではなく、実戦でテストされた実用的なソリューションであり続けることを保証します。

Forward Email の基本原則: 卓越性の基盤

Forward Emailは、すべての開発決定を導く一連の基本原則に従って設計されています。これらの原則は、 Webサイト、当社のサービスが開発者にとって使いやすく、安全で、ユーザーのプライバシーに重点を置いたものとなることを保証します。

常に開発者フレンドリー、セキュリティ重視、透明性

私たちの第一の原則は、最高水準のセキュリティとプライバシーを維持しながら、開発者に優しいソフトウェアを作成することです。私たちは、技術的な卓越性は使いやすさを犠牲にすべきではないと考えており、透明性がコミュニティとの信頼を築くと考えています。

この原則は、詳細なドキュメント、明確なエラー メッセージ、成功と課題の両方に関するオープンなコミュニケーションに表れています。コードベース全体をオープン ソースにすることで、精査とコラボレーションを促進し、ソフトウェアとより広範なエコシステムの両方を強化します。

実績のあるソフトウェア開発原則の遵守

当社は、数十年にわたってその価値が実証されてきた、確立されたソフトウェア開発原則をいくつか採用しています。

  • MVC: モデル・ビュー・コントローラパターンによる関心の分離
  • Unix哲学: 一つのことをうまくこなすモジュールコンポーネントの作成
  • KISS: シンプルでわかりやすい
  • DRY: 同じことを繰り返さない、コードの再利用を推進
  • YAGNI: 必要ありません、早すぎる最適化を避ける
  • トゥエルブ ファクター: 最新のスケーラブルなアプリケーションを構築するためのベストプラクティスに従う
  • オッカムのかみそり: 要件を満たす最もシンプルなソリューションを選択する
  • ドッグフーディング: 自社製品を積極的に活用

これらの原則は単なる理論的な概念ではなく、私たちの日常的な開発実践に組み込まれています。たとえば、私たちが Unix 哲学を順守していることは、npm パッケージの構造に表れています。npm パッケージは、複雑な問題を解決するために組み合わせることができる、小さくて焦点を絞ったモジュールです。

自力で頑張る開発者をターゲットにする

私たちは特に、自力で立ち上がった、そして ラーメン儲かる 開発者です。この焦点は、価格設定モデルから技術的な決定まで、すべてに影響を与えます。限られたリソースで製品を構築することの難しさは、私たち自身も経験しているためよく理解しています。

この原則は、オープンソースへの取り組み方において特に重要です。私たちは、企業の予算がない開発者の実際の問題を解決するパッケージを作成および維持し、リソースに関係なく誰もが強力なツールを利用できるようにしています。

実践の原則: 転送メールのコードベース

これらの原則は、Forward Email のコードベースに明確に示されています。package.json ファイルには、私たちのコアバリューに合わせて慎重に選択された依存関係が示されています。

  • セキュリティ重視のパッケージ mailauth メール認証用
  • 開発者に優しいツール preview-email デバッグを容易にするため
  • さまざまなモジュールコンポーネント p-* Sindre Sorhusのユーティリティ

私たちは、これらの原則を長期にわたって一貫して遵守することで、開発者がメール インフラストラクチャを安心して利用できる、安全で信頼性が高く、オープン ソース コミュニティの価値観に沿ったサービスを構築してきました。

プライバシーバイデザイン

プライバシーは、Forward Email にとって後付けの機能でもマーケティング機能でもありません。当社のサービスとコードのあらゆる側面に影響を与える基本的な設計原則です。

  • ゼロアクセス暗号化: ユーザーのメールを読むことが技術的に不可能になるシステムを導入しました。
  • 最小限のデータ収集: 当社はサービスを提供するために必要なデータのみを収集し、それ以上のデータは収集しません。
  • 透明なポリシー: 当社のプライバシーポリシーは、法律用語を使わず、明確でわかりやすい言葉で書かれています。
  • オープンソース検証: 当社のオープンソース コードベースにより、セキュリティ研究者は当社のプライバシーに関する主張を検証できます。

この取り組みは、セキュリティとプライバシーのベストプラクティスを最初から組み込んで設計されたオープンソース パッケージにも適用されます。

持続可能なオープンソース

私たちは、オープンソース ソフトウェアが長期的に繁栄するには持続可能なモデルが必要であると考えています。私たちのアプローチには以下が含まれます。

  • 商用サポート: オープンソース ツールに関するプレミアム サポートとサービスを提供します。
  • バランスのとれたライセンス: ユーザーの自由とプロジェクトの持続可能性の両方を保護するライセンスを使用します。
  • コミュニティの関与: 貢献者と積極的に関わり、協力的なコミュニティを構築します。
  • 透明なロードマップ: ユーザーがそれに応じて計画できるように開発計画を共有します。

持続可能性に重点を置くことで、オープンソースへの貢献が放置されることなく、時間の経過とともに成長し、改善し続けることができるようになります。

数字は嘘をつかない: 驚異的な npm ダウンロード統計

オープンソース ソフトウェアの影響について語るとき、ダウンロード統計は採用と信頼の具体的な尺度となります。私たちが維持に協力しているパッケージの多くは、合計ダウンロード数が数十億に上り、ほとんどのオープンソース プロジェクトが達成できない規模に達しています。

Top npm Packages by Downloads

[!重要] JavaScript エコシステムでダウンロード数の多いパッケージの保守に協力できることを誇りに思いますが、これらのパッケージの多くは元々他の優秀な開発者によって作成されたものであることを認識しておきたいと思います。superagent や supertest などのパッケージは元々 TJ Holowaychuk によって作成されました。彼のオープンソースへの多大な貢献は Node.js エコシステムの形成に大きく貢献してきました。

私たちの影響の鳥瞰図

2025 年 2 月から 3 月までのわずか 2 か月間で、当社が貢献し、維持に貢献しているトップ パッケージのダウンロード数が驚異的な数を記録しました。

[!NOTE] 私たちがメンテナンスに協力しているが、作成していない他のいくつかのパッケージのダウンロード数はさらに多く、以下が含まれます。 form-data (ダウンロード数7億3,800万回以上) toidentifier (3億900万回以上ダウンロード) stackframe (ダウンロード数1億1600万回以上) error-stack-parser (ダウンロード数 1 億 1,300 万回以上)。私たちは、元の作者の作品を尊重しながら、これらのパッケージに貢献できることを光栄に思っています。

これらは単に印象的な数字というだけではありません。私たちが保守に協力しているコードを使って、実際の開発者が実際の問題を解決していることを表しています。ダウンロードのたびに、これらのパッケージが趣味のプロジェクトから何百万もの人が使用するエンタープライズ アプリケーションまで、誰かが何か意味のあるものを構築するのに役立った例が生まれます。

Package Categories Distribution

毎日大規模なインパクト

日々のダウンロードパターンを見ると、一貫して大量の使用が見られ、ピーク時には1日あたり数百万件のダウンロード数に達します[^13]。この一貫性は、これらのパッケージの安定性と信頼性を物語っています。開発者は単に試すだけでなく、コアワークフローに統合し、日々頼りにしています。

週ごとのダウンロードパターンはさらに印象的な数字を示しており、毎週数千万ダウンロード前後で安定しています[^14]。これはJavaScriptエコシステムにおける巨大な足跡を表しており、これらのパッケージは世界中の実稼働環境で実行されています。

生の数字を超えて

ダウンロード統計はそれ自体でも印象的ですが、コミュニティがこれらのパッケージに寄せる信頼についてより深い物語を語っています。この規模のパッケージを維持するには、次のことに対する揺るぎない取り組みが必要です。

  • 下位互換性: 既存の実装を壊さないように、変更は慎重に検討する必要があります。
  • セキュリティ: 数百万のアプリケーションがこれらのパッケージに依存しているため、セキュリティの脆弱性が広範囲にわたる影響を及ぼす可能性があります。
  • パフォーマンスこの規模では、わずかなパフォーマンスの向上でも、総合的に大きなメリットが得られる可能性があります。
  • ドキュメント: あらゆる経験レベルの開発者が使用するパッケージには、明確で包括的なドキュメントが不可欠です。

ダウンロード数が長期にわたって着実に増加していることは、これらのコミットメントを達成し、信頼性が高く、適切に管理されたパッケージを通じて開発者コミュニティとの信頼関係を構築できたことを反映しています。

エコシステムのサポート: オープンソース スポンサーシップ

[!TIP] オープンソースの持続可能性は、コードの提供だけではなく、重要なインフラストラクチャを維持する開発者をサポートすることも意味します。

JavaScript エコシステムへの直接的な貢献に加え、当社は多くの最新アプリケーションの基盤を形成する著名な Node.js 貢献者をスポンサーできることを誇りに思っています。スポンサーシップには以下が含まれます。

アンドリス・ラインマン: 電子メール インフラストラクチャのパイオニア

アンドリス・ラインマン の作者である メモメーラーは、毎週1400万回以上ダウンロードされているNode.jsの最も人気のある電子メール送信ライブラリです[^15]。彼の仕事は、次のような他の重要な電子メールインフラストラクチャコンポーネントにも及びます。 SMTP サーバー, メールパーサー、 と ワイルドダック.

当社のスポンサーシップにより、当社独自の Forward Email サービスを含む、無数の Node.js アプリケーションの電子メール通信を強化するこれらの重要なツールの継続的なメンテナンスと開発が保証されます。

Sindre Sorhus: ユーティリティ パッケージのマスターマインド

シンドレ・ソルフス JavaScriptエコシステムで最も多作なオープンソース貢献者の一人であり、1,000以上のnpmパッケージを所有しています。彼のユーティリティには、 pマップ, p-再試行、 と is-ストリーム Node.js エコシステム全体で使用される基本的な構成要素です。

Sindre 氏の取り組みを支援することで、JavaScript 開発の効率と信頼性を高めるこれらの重要なユーティリティの開発の継続に貢献します。

これらのスポンサーシップは、より広範なオープンソース エコシステムに対する当社の取り組みを反映しています。当社の成功は、これらの貢献者やその他の貢献者によって築かれた基盤の上に築かれたものであることを認識しており、エコシステム全体の持続可能性を確保することに尽力しています。

JavaScript エコシステムのセキュリティ脆弱性を発見

オープンソースに対する当社の取り組みは、機能開発にとどまらず、何百万人もの開発者に影響を与える可能性のあるセキュリティの脆弱性を特定して対処することにも及びます。JavaScript エコシステムに対する当社の最も重要な貢献のいくつかは、セキュリティの領域におけるものです。

Koa ルーターの救出

2019年2月、ニックは人気のあるkoa-routerパッケージのメンテナンスに重大な問題があることを発見しました。 Hacker Newsで報告パッケージは元のメンテナーによって放棄され、セキュリティ上の脆弱性は解決されず、コミュニティは更新されないままになりました。

[!警告] セキュリティ上の脆弱性がある放棄されたパッケージは、特に毎週何百万回もダウンロードされる場合、エコシステム全体に重大なリスクをもたらします。

それに応えてニックは @koa/ルーター そして、コミュニティに状況を知らせる手助けをしました。それ以来、彼はこの重要なパッケージを保守し、Koa ユーザーが安全で適切に保守されたルーティング ソリューションを利用できるようにしています。

ReDoS 脆弱性への対処

2020年、ニックは重要な問題を特定し、対処しました。 正規表現によるサービス拒否 (ReDoS) 広く使用されている脆弱性 url-regex パッケージ。この脆弱性(SNYK-JS-URLREGEX-569472) により、攻撃者は、正規表現で壊滅的なバックトラッキングを引き起こす特別に細工された入力を提供することで、サービス拒否を引き起こす可能性があります。

ニックは、既存のパッケージにパッチを当てるのではなく、 url-regex-safeは、元のAPIとの互換性を維持しながら脆弱性に対処する完全に書き直された実装です。彼はまた、 包括的なブログ投稿 脆弱性とその軽減方法を説明します。

この作業は、セキュリティに対する私たちのアプローチを示しています。問題を修正するだけでなく、コミュニティを教育し、将来同様の問題を防ぐ強力な代替手段を提供します。

Node.js と Chromium のセキュリティの推進

ニックは、より広範なエコシステムにおけるセキュリティの改善を積極的に提唱してきました。2020年8月、彼はNode.jsのHTTPヘッダーの処理に関連する重大なセキュリティ問題を特定しました。これは、 レジスター.

この問題は Chromium のパッチに起因しており、攻撃者がセキュリティ対策を回避できる可能性があります。Nick の支援により、この問題は迅速に解決され、何百万もの Node.js アプリケーションが潜在的な悪用から保護されました。

npm インフラストラクチャのセキュリティ保護

同月後半、ニックはnpmの電子メールインフラに別の重大なセキュリティ問題を発見した。 レジスターnpm は DMARC、SPF、DKIM の電子メール認証プロトコルを適切に実装していなかったため、攻撃者が npm から送信されたように見えるフィッシング メールを送信できる可能性がありました。

Nick のレポートにより、npm の電子メール セキュリティ体制が改善され、パッケージ管理に npm を利用している何百万人もの開発者が潜在的なフィッシング攻撃から保護されるようになりました。

フォワードメールエコシステムへの貢献

Forward Email は、Nodemailer、WildDuck、mailauth などのいくつかの重要なオープン ソース プロジェクトに基づいて構築されています。当社のチームはこれらのプロジェクトに多大な貢献をしており、電子メールの配信とセキュリティに影響する深刻な問題を特定して修正するのに役立っています。

Nodemailer のコア機能の強化

メモメーラー は Node.js での電子メール送信のバックボーンであり、私たちの貢献により、より堅牢なものになりました。

  • SMTP サーバーの改善: SMTPサーバーコンポーネントの解析バグ、ストリーム処理の問題、TLS構成の問題を修正しました[^16][^17]。
  • メールパーサーの機能強化: 電子メール処理の失敗を引き起こす可能性のある文字シーケンスのデコードエラーとアドレスパーサーの問題を修正しました[^18][^19]。

これらの貢献により、Nodemailer は Forward Email を含む Node.js アプリケーションでの電子メール処理の信頼できる基盤であり続けます。

Mailauth によるメール認証の強化

マイラウス 重要な電子メール認証機能を提供しており、私たちの貢献によりその機能が大幅に向上しました。

  • DKIM 検証の改善: 私たちは、X/TwitterにDNSキャッシュの問題があり、送信メッセージでDKIMエラーが発生していることを発見し、Hacker One[^20]で報告しました。
  • DMARC と ARC の強化: 不正な認証結果につながる可能性のあるDMARCおよびARC検証の問題を修正しました[^21][^22]。
  • パフォーマンスの最適化: メール認証プロセスのパフォーマンスを向上させる最適化に貢献しました[^23][^24][^25][^26]。

これらの改善により、電子メール認証の正確性と信頼性が確保され、ユーザーをフィッシングやなりすまし攻撃から保護できるようになります。

主なアップタイムの強化

Upptime への当社の貢献は次のとおりです。

  • SSL証明書監視: SSL証明書の有効期限を監視する機能を追加し、期限切れの証明書による予期せぬダウンタイムを防止しました[^27]。
  • 複数のSMS番号のサポートインシデント発生時にSMS経由で複数のチームメンバーに警告するサポートを実装し、対応時間を改善しました[^28]。
  • IPv6 チェックの修正: IPv6接続チェックの問題を修正し、最新のネットワーク環境でより正確な監視を実現しました[^29]。
  • ダーク/ライトモードのサポート: ステータスページのユーザーエクスペリエンスを向上させるためにテーマサポートを追加しました[^31]。
  • より優れたTCP-Pingサポート: より信頼性の高い接続テストを提供するためにTCP ping機能を強化しました[^32]。

これらの改善は、Forward Email のステータス監視に役立つだけでなく、Upptime ユーザーのコミュニティ全体で利用可能であり、私たちが依存しているツールを改善するという取り組みを示しています。

すべてをまとめる接着剤: 大規模なカスタムコード

当社のnpmパッケージと既存プロジェクトへの貢献は重要ですが、これらのコンポーネントを統合するカスタムコードこそが、当社の技術的専門知識を真に証明するものです。Forward Emailのコードベースは、プロジェクトが2017年に開始されて以来、10年にわたる開発努力の成果です。 無料メール転送 モノレポにマージされる前に。

大規模な開発努力

このカスタム統合コードの規模は印象的です。

  • 寄付総額: 3,217件以上のコミット
  • コードベースサイズ: JavaScript、Pug、CSS、JSONファイル全体で421,545行以上のコード[^33]

これは、何千時間もの開発作業、デバッグ セッション、パフォーマンスの最適化を意味します。これは、個々のパッケージを、毎日何千人もの顧客が使用する、まとまりのある信頼性の高いサービスに変える「秘密のソース」です。

コア依存関係の統合

Forward Email のコードベースは、多数の依存関係をシームレスに統合します。

  • 電子メール処理: 送信用のNodemailer、受信用のSMTPサーバー、解析用のMailparserを統合
  • 認証: DKIM、SPF、DMARC、ARC検証にMailauthを使用
  • DNS解決: グローバルキャッシュを備えたDNS-over-HTTPSにTangerineを活用
  • MX接続: 信頼性の高いメールサーバー接続のために、Tangerine 統合による mx-connect を使用します。
  • ジョブスケジューリング: ワーカースレッドによる信頼性の高いバックグラウンドタスク処理のためにBreeを採用
  • テンプレート: 電子メールテンプレートを使用して、顧客とのコミュニケーションでウェブサイトのスタイルシートを再利用します。
  • メールストレージ: 量子耐性プライバシーのためにChaCha20-Poly1305暗号化を使用したbetter-sqlite3-multiple-ciphersを使用して個別に暗号化されたSQLiteメールボックスを実装し、ユーザー間の完全な分離とユーザーのみがメールボックスにアクセスできるようにします。

これらの統合では、エッジケース、パフォーマンスへの影響、セキュリティ上の懸念を慎重に考慮する必要があります。その結果、何百万もの電子メールトランザクションを確実に処理する堅牢なシステムが実現します。また、SQLite 実装では、効率的なバイナリシリアル化のために msgpackr を活用し、インフラストラクチャ全体のリアルタイムステータス更新のために WebSocket (ws 経由) を活用しています。

Tangerine と mx-connect を使用した DNS インフラストラクチャ

Forward Email のインフラストラクチャの重要なコンポーネントは、次の 2 つの主要パッケージを中心に構築された DNS 解決システムです。

  • タンジェリン: 当社の Node.js DNS-over-HTTPS 実装は、再試行、タイムアウト、スマート サーバー ローテーション、キャッシュ サポートが組み込まれており、標準の DNS リゾルバーの代替として使用できます。

  • MX接続: このパッケージは、ターゲット ドメインまたは電子メール アドレスを取得し、適切な MX サーバーを解決して、優先順位に従って接続することで、MX サーバーへの TCP 接続を確立します。

Tangerineとmx-connectを統合しました。 プルリクエスト #4、Forward Email 全体でアプリケーション層の DNS over HTTP リクエストを保証します。これにより、あらゆる地域、アプリ、プロセスにわたって 1:1 の一貫性を保ちながら、大規模な DNS のグローバル キャッシュが提供されます。これは、分散システムで信頼性の高いメール配信を行うために不可欠です。

エンタープライズへの影響: オープンソースからミッションクリティカルなソリューションまで

オープンソース開発における 10 年にわたる取り組みの集大成として、Forward Email は、個人の開発者だけでなく、オープンソース運動そのもののバックボーンを形成する大企業や教育機関にもサービスを提供できるようになりました。

ミッションクリティカルな電子メールインフラストラクチャのケーススタディ

信頼性、プライバシー、オープン ソースの原則に対する当社の取り組みにより、Forward Email は、厳しい電子メール要件を持つ組織にとって信頼できる選択肢となっています。

長年にわたって丁寧にメンテナンスされてきた当社のオープンソース パッケージによって、オープンソース ソフトウェアを推進するコミュニティや組織をサポートするメール サービスを構築できたことには、美しい対称性があります。個々のパッケージの提供からオープンソース リーダー向けのエンタープライズ グレードのメール インフラストラクチャの強化まで、この一連の流れは、ソフトウェア開発に対する当社のアプローチの究極の検証を表しています。

オープンソースの10年: 今後の展望

過去 10 年間のオープンソースへの貢献を振り返り、次の 10 年を展望するとき、私たちは、私たちの取り組みをサポートしてくれたコミュニティへの感謝の気持ちと、これからの展開への期待でいっぱいです。

個々のパッケージ貢献者から、大企業やオープンソース財団が使用する包括的な電子メール インフラストラクチャの保守者に至るまでの私たちの歩みは、驚くべきものでした。これは、オープンソース開発の力と、思慮深く適切に保守されたソフトウェアが広範なエコシステムに与える影響力の証です。

今後数年間、私たちは以下のことに取り組んでいきます。

  • 既存のパッケージの維持と改善を継続世界中の開発者にとって信頼できるツールであり続けることを保証します。
  • 重要なインフラプロジェクトへの貢献を拡大特に電子メールとセキュリティの分野で顕著です。
  • メール転送機能の強化 プライバシー、セキュリティ、透明性への取り組みを維持します。
  • 次世代のオープンソース貢献者を支援する メンターシップ、スポンサーシップ、コミュニティの関与を通じて。

私たちは、ソフトウェア開発の未来はオープンで、協力的で、信頼の基盤の上に築かれるものだと信じています。JavaScript エコシステムに高品質でセキュリティ重視のパッケージを継続的に提供することで、私たちはその未来を築く上で少しでも役割を果たしたいと考えています。

弊社のパッケージをご利用いただいた方、プロジェクトに貢献してくださった方、問題を報告してくださった方、あるいは単に弊社の取り組みについて広めてくださった方、皆様に感謝申し上げます。皆様のご支援のおかげでこの 10 年間の成果を上げることができました。今後 10 年間で一緒に何を達成できるか、楽しみにしています。

[^1]: キャビンの npm ダウンロード統計、2025 年 4 月 [^2]: bson-objectid の npm ダウンロード統計、2025 年 2 月~3 月 [^3]: url-regex-safe の npm ダウンロード統計、2025 年 4 月 [^4]: 2025 年 4 月時点の forwardemail/forwardemail.net の GitHub スター数 [^5]: preview-email の npm ダウンロード統計、2025 年 4 月 [^7]: superagent の npm ダウンロード統計、2025 年 2 月~3 月 [^8]: supertest の npm ダウンロード統計、2025 年 2 月~3 月 [^9]: preview-email の npm ダウンロード統計、2025 年 2 月~3 月 [^10]: キャビンの npm ダウンロード統計、2025 年 2 月~3 月 [^11]: url-regex-safe の npm ダウンロード統計、2 月~3 月2025 [^12]: spamscanner の npm ダウンロード統計、2025 年 2 月~3 月 [^13]: npm 統計からの毎日のダウンロード パターン、2025 年 4 月 [^14]: npm 統計からの毎週のダウンロード パターン、2025 年 4 月 [^15]: nodemailer の npm ダウンロード統計、2025 年 4 月 [^16]: https://github.com/nodemailer/smtp-server/issues/155 [^17]: https://github.com/nodemailer/smtp-server/issues/node-v12-requires-tls-min [^18]: https://github.com/nodemailer/mailparser/issues/261 [^19]: https://github.com/nodemailer/nodemailer/issues/1102 [^20]: https://github.com/postalsys/mailauth/issues/30 [^21]: https://github.com/postalsys/mailauth/issues/58 [^22]: https://github.com/postalsys/mailauth/issues/48 [^23]: https://github.com/postalsys/mailauth/issues/74 [^24]: https://github.com/postalsys/mailauth/issues/75 [^25]: https://github.com/postalsys/mailauth/issues/60 [^26]: https://github.com/postalsys/mailauth/issues/73 [^27]: UpptimeリポジトリのGitHub Issuesに基づいています [^28]: UpptimeリポジトリのGitHub Issuesに基づいています [^29]: UpptimeリポジトリのGitHub Issuesに基づいています [^30]: breeのnpmダウンロード統計(2025年2月~3月) [^31]: UpptimeへのGitHubプルリクエストに基づいています [^32]: UpptimeへのGitHubプルリクエストに基づいています [^34]: koaのnpmダウンロード統計(2025年2月~3月) [^35]: @koa/routerのnpmダウンロード統計(2025年2月~3月) [^36]: koa-routerのnpmダウンロード統計(2025年2月~3月) [^37]: url-regexのnpmダウンロード統計(2025年2月~3月) [^38]: @breejs/laterのnpmダウンロード統計2025年2月~3月 [^39]: email-templates の npm ダウンロード統計、2025年2月~3月 [^40]: get-paths の npm ダウンロード統計、2025年2月~3月 [^41]: dotenv-parse-variables の npm ダウンロード統計、2025年2月~3月 [^42]: @koa/multer の npm ダウンロード統計、2025年2月~3月