こんにちは。Liberlunaのnakasyouです。
このPostでは、Denoについて解説していきます。
What’s Deno?
Denoは、高速で安全で効率的なNode.jsというと、説明が早いでしょう。
Node.jsと同じように、JavaScriptランタイムです。
高速
Denoは、めっちゃはやい(らしい)です。
zennにあるベンチマークをみると、サーバーのリクエストでは、Denoの方がNode.jsより約3倍高速です。
安全
Node.jsは、コードを実行すると、プログラムの内容通りに、ファイル操作、サブプロセスの起動、ネットワーク接続ができます。 しかし、Denoは、セキュアなサンドボックス上で実行されるので、そんなことは起こりません。 具体的には、
- ファイル操作時に、ユーザーに確認
- サブプロセスの起動時に、ユーザーに確認
- ネットワークの使用時に、ユーザーに確認
のようなことを行います。 けれども、「いちいちユーザーに確認するなんて、面倒だ」なんて思うかもしれません。 なので、あらかじめ信頼できるプログラムには、コマンドライン引数のみでアクセス制限を止めることができるのです。
効率的
Denoは、node_modules
のような、めっちゃ重くなる、プロジェクトごとのモジュールフォルダーが存在しません。
全てのモジュールが、ユーザー単位にインストールされます。
また、パッケージマネージャーが存在しません。
そのため、モジュールを使うときに、インストールはいりません。
TypeScript
Node.jsは、ts-nodeを使ったり、一度JSにコンパイルしてからではないと、TypeScriptは使えません。ですが、Denoなら、標準でTypeScriptを使用することができます。 型のある開発は、生産性が上がります。
Example
main.tsがあったとします。
import * as lodash from "https://deno.land/x/lodash@4.17.19/lodash.js"
const arr: Array<Array<string>> = [['a','0'],['b','1']
const result = _.fromPairs(arr)
console.log(result)
これを実行します。
deno run main.ts
# => {a:'0', b:'1'}
簡単ですね。
まとめ
Denoを使えば、簡単にJavaScriptをサーバーで動かせる!