Denoとは
RustとV8エンジンをベースに実装されたJS/TSランタイムです
作者はNode.jsの開発者でもある Ryan Dahlさん
Node.jsにおける反省点等を改良するために開発されました
https://github.com/denoland/deno
https://deno.com/
Topic
- Nodejsと違って標準モジュールが豊富
- モジュール機構がDenoだとESMオンリーになっていて綺麗
- TSを標準サポート!
- Denoの組み込みのテスト機能が充実
- DenoDeployが便利!
- 標準のリンター、フォーマッター
- 組み込みKeyValue Store搭載
Upgrade from Node.js to Deno
Nodejs と異なり標準モジュールが充実している
Node.jsには標準モジュールに相当する公式のライブラリという概念はありません。Node.js本体に含まれる機能だけが公式のAPIで、それ以外はすべて3rdパーティという関係です。そのため3rdパーティに頼る比重が必然的に多くなります。
それに対してDenoは、本体のAPIがまずあって、次にカバー範囲の広い標準モジュールがあり、それ以外が3rdパーティという構造になっています。
たとえば、Node.jsではテスト関連の3rdパーティのモジュール群は選択肢が非常に豊富にあります。Denoの場合は本体にbuiltinされたテストランナー(Deno.test)とstd/testingから提供されるアサーションでほとんど事足りてしまうため、選択肢が狭まっていると言えます(選択肢が少ないことをデメリットと取るかメリットと取るか、人や場合によるかもしれませんが)。
標準モジュールが豊富
めっちゃ便利です。
TS標準サポート
Native TypeScript support with zero config
Use bleeding edge JavaScript features
Intellisense and auto-complete in Visual Studio Code
Publish and distribute modules as TypeScript source code
煩わしいOptionの設定などから解放されます!
TSそのままで実行可能
Deno Deploy
Deno の開発元 Deno Land 社が提供しているホスティングサービス
Globally distributed
Deploy in seconds
Built-in key/value database
Integrate with GitHub for CI/CD
Run static sites, apps, and edge functions
簡単にデプロイできて、現在Beta版の組み込みのキーバリューDBを使うことができます!
早くFireStoreをわざわざ立ち上げたりしていた時代とおさらばしたい!
Denoで動く新しいWebFrameworkです(今回割愛)
Deno Land Inc.
会社になってまふ🦕
https://deno.com/company
まとめ
現在はまだ破壊的変更が入ったりしますが、個人開発でちょっとしたプロトタイプを作る際に快適さを味わってみてはどうでしょう…?
Topicsで挙げた項目を網羅できてないですが、残りはまたの機会に・・・