Node.js⁠仮想ファイルシステムを実装へ

Node.jsのメンテナーであるMatteo Collina氏は2026年3月16日、同氏が設立しCTOを務めるPlatformaticのブログでNode.js向けのユーザーランド仮想ファイルシステム@platformatic/vfsを発表し、あわせてNode.jsのコアに仮想ファイルシステムを統合する予定があることを明かした。

これまでNode.jsには仮想ファイルシステム(VFS)がないため、SEA(Single Executable Application:単一実行可能アプリケーション)を作る際に設定ファイル、テンプレート、静的アセットをすべてのコードとともに実行可能ファイルにバンドルする必要があった。実行時にアセットへのアクセスを処理するためだけに、20~40MBもの余分な定型コードを追加することになる。

また、テストの際にはテストがディスクにアクセスせずCIで競合しないようにインメモリファイルで動作させたり、マルチテナントプラットフォームで各テナントのファイルアクセスをサンドボックス化させるなど、余分な手間が必要となる。さらにAIエージェントやそのプラグインによるコード生成の際にはインポートが必要なJavaScriptが生成されるが、現状ではこれらは一時ファイルに書き込まれ、クリーンアップされるかどうかはわからない状態となっている。こうした問題はnode:fsとNode.jsモジュールロードにフックする仮想ファイルシステムが存在することで解決される。

Matteo氏は2025年のクリスマス休暇中のサイドプロジェクトとしてVFSの実装に取りかかり,約1万4,000行のコードをもつNode.js用のVFS(node:vfsモジュール)のプルリクエストを作成、現在プロジェクトメンバーによるレビュー中という。これだけ短期間で形になったのは、ファイルシステムメソッドの実装、テストカバレッジの構築、ドキュメントの生成などをClaude Codeに任せ、自身はアーキテクチャ、API設計、すべてのコード行のレビューに集中できたからだという。

またユーザーランド版VFSの@platformatic/vfsは、Matteo氏のVFSプルリクエストを見たVercelのCTOを務めるMalte Ubl氏が、これをユーザーランドにバックポートするアイデアを提案、npmに公開したところ、Platformaticでも同じアイデアで実装を進めており、Node.js 22以降で利用可能となったもの。Matteo氏も「2つのチームが独立して同じAPIをユーザーランドに抽出したということは、設計がしっかりしている証拠」と、VFSの実装に自信を持っている。

なお、@platformatic/vfsはAPIの動作などはコア実装版のnode:vfsと同じく検証可能だが、ネイティブモジュールが動作しないなど、制約もいくつか存在する。このためMatteo氏も、node:vfsがコアに統合されたら@platformatic/vfsはAPIの変更に合わせて常に同期させ、最終的には組み込みモジュールに置き換える予定と述べている。移行はimport文で@platformatic/vfsnode:vfsに置き換えるだけで済むとのこと。

おすすめ記事

記事・ニュース一覧