Deno 1.16 JavaScript プラットフォームがリリースされました。これは、JavaScript と TypeScript で書かれたアプリケーションを (ブラウザを使用せずに) スタンドアロンで実行できるように設計されています。このプロジェクトは、Node.js 作者の Ryan Dahl によって開発されました。プラットフォーム コードは Rust プログラミング言語で書かれており、MIT ライセンスに基づいて配布されます。 Linux、Windows、macOS 用に既製のビルドが用意されています。
このプロジェクトは Node.js プラットフォームに似ており、同様に V8 JavaScript エンジンを使用していますが、Node.js の作成者によると、以前のプロジェクトの多くのアーキテクチャ上の欠陥が修正されており、次のニュアンスで異なります。 :
- 開発者によれば、メイン言語として Rust を使用することで、低レベルのメモリ管理 (バッファ オーバーフロー、解放後の使用など) に関連する脆弱性のリスクが軽減されます。
- Deno は npm パッケージ マネージャーと package.json を使用せず、インストールするモジュールへの URL またはパスを指定してモジュールをインストールするようにユーザーに求めます。ただし、このプロジェクトでは、サードパーティ モジュールの使用を簡素化するためのユーティリティがいくつか提供されています。
- アプリケーションはサンドボックス内で個別に実行され、明示的に許可が与えられない限り、ネットワーク、環境変数、ファイル システムにアクセスできません。
- このアーキテクチャは、Deno システムと通常のブラウザの両方で動作するユニバーサル Web アプリケーションを作成する機能を提供します。
- 「ES モジュール」を使用していて、require() サポートが不足している。
- プログラマが処理しない Web アプリケーションのエラーは強制終了につながります。
- JavaScript に加えて TypeScript もサポート。
- すぐに使用できるプラットフォームのフルサイズは、単一の実行可能ファイルの形式で 84 MB (zip アーカイブ内 - 31 MB) です。
- このキットは、依存関係を解決し、コードをフォーマットするためのシステムを提供します。
- 高性能アプリケーションに焦点を当てます。
Dino は、イベント駆動型アーキテクチャに基づいて高性能アプリケーションを構築するために設計された Tokio プラットフォームを使用して、ノンブロッキング方式でリクエストを処理します。また、Deno の組み込み HTTP サーバーがネイティブ TCP ソケット上の TypeScript で実装されていることも興味深いことであり、これがネットワーク操作のパフォーマンスにプラスの影響を与えています。
新しいバージョンでは次のように注意されています。
- パフォーマンスの最適化 (4 パッチ);
- 15 を超えるエラーが修正されました。特に、TLS クライアントが HTTP/2 をサポートし、エンコード サブシステムが追加のエンコード マークをサポートするようになりました。
- 8 を超えるイノベーションのうち、以前にテストしたサブシステム Deno.startTls と Deno.TestDefinition.permissions の安定化、V9.7 JS エンジンのバージョン 17 への更新、および React XNUMX JSX 変換のサポートに注目することができます。
出所: オープンネット.ru