Deno プロジェクトは、Node.js に似た安全な JavaScript プラットフォームを開発しています。

利用可能 プロジェクトのリリース での 0.33は、JavaScript および TypeScript でスタンドアロン アプリケーションを実行するための Node.js に似たプラットフォームを提供し、サーバー上で実行されるハンドラーの作成など、ブラウザーに縛られずにアプリケーションを実行するために使用できます。 Deno は JavaScript エンジンを使用します V8、Node.js および Chromium プロジェクトに基づくブラウザーでも使用されます。 プロジェクトコード によって配布 MITライセンスの下で。 このプロジェクトは Ryan Dahl によって開発されています (ライアン・ダール)、Node.js JavaScript プラットフォームの作成者。

JavaScript 用の新しいランタイムを作成する主な目的の 8 つは、より安全な環境を提供することです。 セキュリティを向上させるために、VXNUMX エンジンは Rust で書かれており、フリー後のアクセス、null ポインタの逆参照、バッファ オーバーランなど、低レベルのメモリ操作から生じる多くの脆弱性を回避します。 プラットフォームは、ノンブロッキング モードでリクエストを処理するために使用されます。 東京、これもRustで書かれています。 Tokio を使用すると、イベント駆動型アーキテクチャに基づいた高性能アプリケーションを作成でき、マルチスレッドをサポートし、非同期モードでネットワーク要求を処理できます。

メイン 特徴 デノ:

  • セキュリティ指向のデフォルト構成。 ファイル アクセス、ネットワーク、環境変数へのアクセスはデフォルトで無効になっているため、明示的に有効にする必要があります。
  • JavaScript に加えて TypeScript 言語の組み込みサポート。
  • ランタイムは、単一の自己完結型実行可能ファイル (「deno」) の形式で提供されます。 Denoを使用してアプリケーションを実行するにはこれで十分です アップロードする そのプラットフォームの場合、サイズが約 10 MB の XNUMX つの実行可能ファイル。これには外部依存関係がなく、システムに特別なインストールを必要としません。
  • プログラムの起動時やモジュールのロード時に、URL アドレス指定を使用できます。 たとえば、welcome.js プログラムを実行するには、「deno https://deno.land/std/examples/welcome.js」コマンドを使用できます。 外部リソースからのコードはダウンロードされ、ローカル システムにキャッシュされますが、自動的に更新されることはありません (更新するには、「--reload」フラグを指定してアプリケーションを明示的に実行する必要があります)。
  • アプリケーションでの HTTP 経由のネットワーク リクエストの効率的な処理。プラットフォームは、高性能ネットワーク アプリケーションを作成するように設計されています。
  • Deno と通常の Web ブラウザの両方で実行できるユニバーサル Web アプリケーションを作成する機能。
  • ランタイムに加えて、Deno プラットフォームはパッケージ マネージャーとしても機能し、コード内の URL によってモジュールにアクセスできるようにします。 たとえば、モジュールをロードするには、コード内で「import * as log from “https://deno.land/std/log/mod.ts”」と指定できます。 URL 経由で外部サーバーからダウンロードされたファイルはキャッシュされます。 モジュールのバージョンへのバインドは、URL 内にバージョン番号を指定することによって決定されます (例: 「https://unpkg.com/」)。[メール保護]/dist/liltest.js";
  • この構造には、統合された依存関係検査システム (「deno info」コマンド) とコード フォーマット用ユーティリティ (deno fmt) が含まれています。
  • アプリケーション開発者向け 提案された 追加の監査と互換性テストを経た一連の標準モジュール。
  • すべてのアプリケーション スクリプトを XNUMX つの JavaScript ファイルに結合できます。

Node.js との違い:

  • Deno は npm パッケージ マネージャーを使用しません
    リポジトリに関連付けられておらず、モジュールは URL またはファイル パスによってアドレス指定され、モジュール自体は任意の Web サイトに配置できます。

  • Deno はモジュールの定義に「package.json」を使用しません。
  • API の違いとして、Deno のすべての非同期アクションは Promise を返します。
  • Deno では、ファイル、ネットワーク、環境変数に必要なすべての権限を明示的に定義する必要があります。
  • ハンドラーが提供されていないエラーはすべて、アプリケーションの終了につながります。
  • Deno は ECMAScript モジュール システムを使用しており、require() をサポートしていません。

出所: オープンネット.ru

コメントを追加します