「Node.js VM Summit」が開催、ABI互換性問題への対処などを議論補完プロジェクトの「Fast FFI」と「N-API」が前進

マイクロソフトは、「Edge」に使用されるJavaScriptエンジン「Chakra」の担当チームが開催した「Node.js VM Summit」の模様を報告。「Fast FFI」「N-API」プロジェクトの進捗などが議論された。

» 2017年03月15日 11時00分 公開
[@IT]

 米マイクロソフトは2017年3月13日(米国時間)、Webブラウザ「Microsoft Edge(以下、Edge)」に使われるJavaScriptエンジン「Chakra」の担当チームが3月3日に同社内で開催した「Node.js VM Summit」の模様を報告した。

 同サミットには、JavaScript VMベンダー、Node協力者、CTCメンバー(グーグル、IBM、インテル、マイクロソフト、ニアフォーム、ノードソースの参加者など)が参加した。このグループは2017年3月現在、Nodeのネイティブモジュールのエコシステムが直面するABI互換性問題への対処に力を入れている。以下、内容を抄訳する。

photo マイクロソフト社内の会議室で開催された「Node.js VM Summit」の様子

Nodeのネイティブモジュール問題

 NodeのネイティブモジュールはC/C++で書かれており、V8やNAN API(Application Programming Interface)に直接依存している。これらのモジュールは、Node.jsのメジャーアップデートごとに、ABI(Application Binary Interface)とAPIの変更に伴って更新や再コンパイルが必要になる可能性がある。

 このことはネイティブモジュール作者にとって、メンテナンスの負担が増える。また、モジュール利用者にとっても、本番環境で使用しているNodeのアップグレードの障害になる。この問題に対処するための補完プロジェクトが「Fast FFI(foreign function interface)」と「N-API(Node.js API)」となる。

Fast FFI

 Fast FFIでは、ネイティブAPIをJavaScriptに自動的に提供することを目指している。これにより、モジュール作者はC/C++コードを追加作成することなく、既存のネイティブコードをNode.jsにエクスポーズできるようにする。

 Fast FFIプロジェクトは2017年3月現在、初期のプロトタイピング段階にあり、Node.jsの機能と考えられるためには、さらに取り組みを進める必要がある。今後、取り組みの前進に合わせてコミュニティーに最新情報が提供され、実用性の評価を行っていくという。

N-API

 N-APIは、JavaScript VMのネイティブAPIのABI安定抽象化レイヤーを提供する。これによりネイティブモジュール作者は、プラットフォームやアーキテクチャごとにモジュールを1回コンパイルすれば、Node.jsの任意のN-API対応版で実行できるようになる。

 N-APIはこの1年で大幅に開発が進み、2017年3月現在では広範な利用に対応できるようになっている。

 最もよく依存される30のモジュールにおけるネイティブAPIの使用パターンから考察すると、5つ以上のモジュールで使われる「V8 API」は、N-APIで100%カバーされる。コアチームは、N-APIを使用できるように、オープンソースの「Node-Sass」「Canvas」「LevelDown」「Nanomsg」「IoTivity」を移植した。

photo N-APIによる人気のネイティブAPIのカバー率

 VM Summit参加者は、Fast FFIとN-APIの進捗と実用性を評価し、N-APIが実験的機能として「Node.js 8.0」に含まれるようプルリクエストを行うことを検討することで合意した。N-APIがNode.js 8.0に含まれれば、ネイティブモジュール作者はN-APIを試しやすくなる。またN-APIチームも、このプロジェクトの広範なテストやフィードバックの取得が可能になる。

 N-APIプロジェクトの今後の重要なステップは以下の通り。

  • N-APIのNode.js 8.0への搭載を求めるプルリクエストをNode.jsのマスターに提出
  • 安定化後、Node.js v6.9 LTSとNode-ChakraCoreに移植
  • 広範なコミュニティーのエンゲージメントによるAPIギャップの特定
  • パフォーマンスの微調整
March 3 2017 - Node.js VM Summit(YouTube)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。