Node.jsオリジナル開発者、Node.jsでの経験を生かして安全なTypeScript処理系「Deno」を開発

 Node.jsのオリジナル開発者であるRyan Dahl氏が最新のプロジェクト「Deno」を発表した。TypeScriptのサーバーサイド実行環境で、Node.jsと同様にV8を利用する。また、実装にはGo言語が使われている。

 Dahl氏はNode.js開発においては複数の「ミス」があったとし、その反省からDenoの開発に取り組んでいるという。Node.jsにおけるミスの具体的な例としては、2009年に追加しながらも2010年2月に削除してしまったPromisesや、V8のセキュリティサンドボックス機能を有効活用できていないこと、ビルドシステム(V8が使っていたGYPを採用したが、その後ChromeはGYPからGNに変更してしまい取り残された。その後もGYPを使い続けた)、不要な情報を含む仕様になってしまったpackage.json、モジュールを格納するためのnode_modulesディレクトリ(モジュールの解決アルゴリズムを複雑にしてしまった)などが挙げられている。

 Denoはこういった課題から学び、package.jsonやnpmによるパッケージ管理機構は含まず、URLベースのモジュールのインポート機能が提供される。また、ファイルシステムとネットワークアクセスは、サンドボックス化されたコードが走るように制御され、デフォルトではリードオンリーのファイルシステムでネットワークアクセスは利用できない。V8とGo言語で実装されたモジュール間のやりとりは、一定条件で定義されシリアル化されたメッセージでのみ行われ、監査が容易だという。

 また、単一の実行ファイル、トップレベルのawaitサポートなどの特徴も備える。ブラウザ互換を目指しており、独自のJavaScriptランタイムを構築するライブラリとしても利用できるとしている。

 DenoはMIT Licenseで公開されて下り、プロジェクトのWebサイトより入手できる。サポートされるTypeScriptのバージョンは2.8。

Deno
https://github.com/ry/deno