第39回 - Deno の紹介

9/15 に第39回ZEALOT勉強会を実施しました。

今回のテーマは、「Deno の紹介」ということで、Node.js の作者であるライアン・ダールによって作成され、2018年にリリースされた JavaScript, TypeScript のランタイム環境である Deno の紹介をしていただきました。


Deno とは?

 
deno_logo
 

Deno is a simple, modern and secure runtime for JavaScript, TypeScript and WebAssembly that uses V8 and is built in Rust.

  • JavaScript の runtime の一つ。特徴として JavaScript、TypeScript が使える。
  • Node.js と同じく V8エンジン使っているが、Rust で V8 を囲むようなレイヤー部分がある。それは Deno が色々な API を利用できるようにするためと、TypeScript をそのまま実行できる環境を作るため。

Deno の特徴

  • ブラウザで使う JavaSctipt の API と互換性のある API を提供してる。
  • デフォルトでセキュア。
    • ファイルの読み書き、ネットワークへの接続の実行時などで許可が必要。
  • 設定せず TypeScript が使える。
    • Node.js だと設定やパッケージのインストールが必要。
  • 一つの実行ファイルを提供するだけ。
    • Node.js の場合は、パッケージインストール時の npm のように別のバイナリが必要だったりする。
  • 色々なツールが提供されている。
    • deno info, deno fmf
  • Deno での動作が保証されているレビュー済み (監査済み) の標準モジュールのセットがある。

module の説明

  • Deno で module を使いたい時に、モジュールのあるURLを書くことで利用できる。(Github や他のサーバーのものも使える)
  • Node.js だと npm のサーバに登録されたもの。

ビルトインツールなど

  • deno install
    • Deno がインストールされている環境で実行可能なファイルを作ってくれる。
  • deno compile
    • Deno の runtime も全て入った Deno の無い環境でも動くファイルを作ってくれる。
  • deno task
    • 複雑な作業を、タスク化して実行することができる。
  • deno test
    • テスト用の環境も別のパッケージを使う必要がない。

まとめ

  • いつもの時間だと予定が合わない方が多いとのことで、試しでお昼時間に30分と短縮バージョンでの開催でした。出席者も多く大盛況でした!
  • Node 製作者が、Node を作った時の10個の後悔を踏まえて開発したとのこと(deno は node のアナグラムらしい、、、)で、色々と改善されていてよさそうですよね!今後の動向も気になります!

References