Denoは、JavaScriptとTypeScriptをブラウザの外で動かすための実行環境(ランタイム)です。Node.jsを作ったライアン・ダール氏が、Node.jsの設計で失敗したと考えた点を直すために始め、オープンソースで公開しています。
Deno とは:Node.js との違い
Denoは、Google Chromeと同じJavaScriptエンジン「V8」の上で動き、本体はRustで書かれています。Node.jsと比べたときの特徴は次の3つです。
1つ目は、TypeScriptをそのまま実行できることです。Node.jsのように変換ツールや設定ファイルを別に用意する必要がありません。
2つ目は権限の仕組みです。初期状態では、プログラムはファイルの読み書きもネットワーク通信もできません。実行するときに、何を許可するかを明示します。外部から取り込んだライブラリが勝手に通信するのを防ぎやすい作りです。
3つ目は、整形・静的解析・テストの道具が最初から入っていることです。Node.jsではPrettierやESLintなどを別々に入れて組み合わせますが、Denoは本体だけで一通りそろいます。
使い方:基本のコマンド
インストールしたら、`deno run main.ts` でTypeScriptのファイルをそのまま実行できます。Webサーバーのように通信が必要なプログラムは `deno run --allow-net server.ts` と、ネットワークを許可して起動します。
コードの整形は `deno fmt`、静的解析は `deno lint`、テストは `deno test` です。npmのパッケージも `npm:` を付けて指定すれば読み込めるので、Node.js向けの資産をある程度そのまま使えます。
料金:本体は無料
Deno本体はオープンソースで、無料で使えます。お金がかかる可能性があるのは、開発元が提供してきたクラウドの実行サービス「Deno Deploy」などの周辺サービスです。料金プランは変わることがあるうえ、後で述べる買収のあとどう扱われるかも分からないため、この記事では金額を書きません。使う前に公式サイトで最新の情報を確認してください。
開発元・競合と Cloudflare による買収
Denoは、ダール氏らの会社(Deno社)が開発してきました。競合は、サーバー側JavaScriptの定番であるNode.jsと、同じく新しいランタイムのBunです。クラウド上の実行基盤としては、Cloudflare Workersとも競ってきました。
そのCloudflareがDenoを買収したと、TechCrunchが報じています。狙いは、Cloudflareのサーバーレス基盤「Workers」のプログラミングモデルを改善することだとされています。Publickeyは、開発元がCloudflareに合流してDenoの開発は終わり、今後はCloudflare WorkersとDurable Objectsのオープンソース実装に力を注ぐと伝えています。
当サイトで確認できた報道の範囲では、次の3点は分かっていません。
- 買収額 - 既存ユーザーの移行をどう支援するのか、その時期 - Deno DeployなどDenoのサービスが今後どうなるのか
企画・DX 担当者が押さえておくこと
ここからは当サイトの見方であり、推測を含みます。開発が終わると報じられている以上、これから新しくDenoを採用するのは慎重に判断したほうがよいと考えます。すでに使っている場合は、Cloudflareや開発元の公式発表を待ち、Node.jsやCloudflare Workersへ移す経路を早めに検討しておくのが安全です。Denoで書いたコードは標準的なWeb APIに沿っていることが多いので、移行の手間は比較的小さく済む可能性があります。

