【ディーノ】

Deno(ディーノ) とは?

最終更新:
💡 Node.jsの生みの親が「もう一度やり直すなら」と作り直したランタイム

Denoとは、JavaScriptとTypeScriptを実行するランタイム。機密性の高い操作の権限制御、Web標準API、npmとの互換性が特徴。TypeScriptの実行と型検査は分けて使う。

📌 このページのポイント
Deno:必要な操作に権限を与えるJS / TSDenoコードを実行ファイルなどの操作は権限を確認通常は制限必要な操作だけ許可deno runTypeScriptの実行deno check型の誤りを検査
通常の機密操作の権限制御を示しています。許可した操作や外部プログラムまで、安全性を保証するものではありません。
ひよこ ひよこ
DenoってNode.jsと何が違うの?
ペンギン先生 ペンギン先生
どちらもJavaScriptを実行するランタイムだよ。DenoはNode.jsの作者Ryan Dahlさんが開発を始めたもので、V8エンジンを使い、ランタイムの実装にはRustが使われている。V8自体がRust製という意味ではないよ。
ひよこ ひよこ
権限はどう設定するの?
ペンギン先生 ペンギン先生
通常はファイル・ネットワーク・環境変数などの機密性の高い操作を制限するよ。必要な操作だけ--allow-readなどのフラグや確認プロンプトで許可する。--allow-allなら制限を外すので、どんなコードでも安全になるわけではないんだ。
ひよこ ひよこ
TypeScriptはそのまま動く?
ペンギン先生 ペンギン先生
deno run main.tsで実行できるよ。ただし実行と型検査は別で、検査にはdeno check main.tsやdeno run --check main.tsを使う。今のNode.jsにも型を取り除いて直接実行する機能があるけれど、対応する構文や設定には違いがあるよ。
ひよこ ひよこ
npmのパッケージは使える?
ペンギン先生 ペンギン先生
npm:という指定やpackage.jsonの依存関係を利用できるよ。Web標準のfetchなども使える。ただしNode.js向けパッケージがすべて無変更で動く保証はないので、ネイティブ拡張などの条件を確認しよう。
ひよこ ひよこ
Node.jsから移行するときは?
ペンギン先生 ペンギン先生
既存のテストをDenoで実行し、使っているAPI・パッケージ・権限を確認するんだ。URLでのインポートだけが方法ではなく、npmやJSRも利用できる。最初から全体を移す前に、小さい処理で互換性を確かめると進めやすいよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Deno」って出てきたら「権限を明示して使うJavaScript/TypeScriptランタイム」と思えばだいたいOK!
📖 おまけ:英語の意味
「Deno」 = Node のアナグラム
💬 Node を並べ替えると Deno になるんだよ。恐竜のマスコットがトレードマークで、公式サイトにもかわいい恐竜がいるよ

参考資料

← 用語集にもどる