ネイティブHTTP/2サーバー対応を進めた「Deno 1.9」が公開

 JavaScriptランタイムエンジン「Deno」の開発チームは4月13日、最新版となる「Deno 1.9」公開を発表した。

 DenoはJavaScript、TypeScript向けのランタイム。単一の実行ファイルとして提供され、明示的な指示のない限りファイル、ネットワーク、環境にアクセスしないなど安全性を特徴とする。依存性インスペクタ、コードフォーマッタなどのツールをビルトインで備え、動作保証のある標準モジュールもある。開発チームは3月、Deno Companyを立ち上げている。Deno 1.9は3月に公開されたDeno 1.8に続く最新版。

 HTTP実装で、ネイティブHTTP/2サーバーAPIを構築するためにHyperを採用した。HyperはRust向けの高速なHTTP。開発チームはこれまでTCPソケット上にTypeScriptでstd/httpを実装してきたが、HTTP/1.1のみという問題があった。Hyper採用により、これを解消するとしている。これにより性能が改善し、hello-worldのスループットが48%改善したと報告している。今後新しいAPIの安定化を図るが、それまでの間は–unstableフラグを使う必要がある。

 バインディングインフラを再構築し、serde_v8を導入した。serde_v8は、Rust向けのシリアライズフレームワークserdeを土台とし、V8とRustの値の間のバイジェクションの最大の効率とゼロオーバーヘッドを目指す。同時に、表現性や使いやすさを保持するという。1500行以上のコードをコアから削除し、ops/opscallのオーバーヘッドを最大65倍改善する(Deno 1.8.3比)と報告している。

 Blob URL(オブジェクトURL)をサポートした。fetchで使用でき、new Workerを使ってweb workersのインスタンス化ができる。fetchではこのほかにも、dataURLのサポートも加わっている。このほか、エディタ拡張のツールDeno Language Serverの強化なども特徴となる。

Deno
https://deno.land