2月3日、Denoは「Deno in 2023」と題した記事を公開した。昨年(2023年)一年間においてDenoがどのような進化を遂げたかを解説している。以下に内容を抜粋して紹介する。詳細は元記事を参照していただきたい。
Nodeとnpmとの互換性強化
Denoは2023年の改善を経て、Nodeの組み込みAPIをサポートし、npmモジュールの読み込みに対応した。これによりNodeとの互換性が向上し、既存のNodeプロジェクトをスムーズにDenoに移行できるようになった。
シンプルで高速なWebサーバー Deno.serve()
Denoが導入したDeno.serve()
関数により、Webサーバーの作成が大幅に簡略化された。イベントループメカニズムの最適化やライブラリ統合により、スループットも大幅に増加している。
より柔軟な deno.json
deno.json
は以下のような改善により、柔軟性を大幅に増した。
- インポートマップとしての利用
- フォーマットオプションの向上
- Node / npmとの互換性の向上
- シンプルな構成構造への変更
- globサポートの追加
Language Server Protocol(LSP)を用いたスムーズな開発体験
DenoのLanguage Server Protocol(LSP)の統合が向上し、エディタやIDEでの開発体験が大幅に向上している。
WebGPUの統合
DenoがWebGPUを導入したことで、開発者はJavaScriptを使用してGPUハードウェアのパワーを直接利用できるようになった。
Jupyter Notebooksのサポート
JupyterがDenoをサポートすることで、JavaScriptおよびTypeScriptを使用したデータサイエンスや可視化が可能となった。実際の例や画像を挿入し、Jupyterのサポートがどのように利用されるかが示されている。
オープンソースで公開されているRustクレート
Denoが提供するRustクレートには、rustls-tokio-stream、fastwebsockets、monch、deno_task_shellなどがある。
Freshの進化
DenoのモダンなフルスタックWebフレームワークであるFreshが、新機能の追加や性能向上などで進化している。以下に、Freshの進化について具体的な改善点や利用シーンの拡充を箇条書きで示す。
- ルーティングの強化: URLルーティングの柔軟性が向上し、複雑なアプリケーションでも使いやすくなった。
- サーバーサイドレンダリング(SSR)のサポート: サーバーサイドレンダリングが追加され、SEO向上や初回表示の高速化が可能になった。
- Fresh CLIの拡充: プロジェクトの作成やビルド、デプロイなどの開発フローをサポートするCLIが更に充実。
Denoのクラウドサービスの拡充
Denoは2024年現在、Deno Subhosting、Deno KV、Queues、Cronと言ったクラウドサービスを提供している。
Deno Subhosting: Netlifyのエッジ機能やDeco.cxのeコマースストアなどに力を発揮しており、今回のアップデートでセルフサービスが可能となった。サードパーティのコードを安全に実行するために設計されており、最大テナントの分離を実現している。
Deno KV: グローバルに分散されたデータベースとして機能し、Deno Deployを使用することで最適なパフォーマンスを提供する。また、独自のオープンソースバイナリやNode/npm向けの公式Deno KV npmモジュールなど、多岐にわたるサポートが行われている。
Queues: イベントキューの形式でアプリケーションを拡張し、非同期処理をサポート。Deno Deploy上で利用することで、柔軟なキュー処理が実現されている。
Cron: タイムベースのジョブスケジューリングを提供し、定期的なタスクの実行を可能にしている。これにより、アプリケーションの自動化が容易に行える。
Deno 2がくる!
最後に、Denoは現在「Deno 2」に向けた準備を進めている。このアップデートでは、Nodeおよびnpmとの互換性向上が焦点となり、スムーズな移行を保証するためのマイグレーションガイドが提供される。さらに、改良されたランタイムに加え、プロジェクトの依存関係を管理し最適化するための新たなロードマップが今後数週間以内に予定されている。
詳細はDeno in 2023を参照していただきたい。
Geometry Dash Lite - Some stars are easy to grab, while others are hidden or placed in hard-to-reach areas, challenging you to perfect your skills.