「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 高パフォーマンスの Node.js 静的ファイルの提供 — Rust を使用

高パフォーマンスの Node.js 静的ファイルの提供 — Rust を使用

2024 年 11 月 4 日に公開
ブラウズ:404

数か月前、私たちは Encore.ts (TypeScript / Node.js 用のオープンソース バックエンド フレームワーク) をリリースしました。

すでに多くのフレームワークが存在するため、私たちが行った異常な設計上の決定のいくつかと、それがパフォーマンスと開発者のエクスペリエンスの向上にどのようにつながるかを共有したいと思います。

高パフォーマンスのために Rust を使用して Node.js で静的ファイルを提供する

Encore.ts には、静的アセット (画像、HTML、CSS ファイル、JavaScript ファイルなど) を提供するためのサポートが組み込まれています。

これは、静的 Web サイトや、静的ファイルにプリコンパイルされたシングルページ アプリケーション (SPA) を提供する場合に便利です。

静的ファイルを定義する場合、ファイルは Encore.ts Rust ランタイムから直接提供されます。

これは、ファイルを提供するために JavaScript コードが実行されず、Node.js ランタイムが解放されてビジネス ロジックの実行に集中できることを意味します。

High performance Node.js static file serving — using Rust

これにより、静的ファイルの提供が大幅に高速化されるだけでなく、API エンドポイントのレイテンシーも改善されます。

最近、Express.js ベースの Node アプリケーションよりも 9 倍高速であることを示すベンチマークを公開しました。

ドキュメントで詳細をご覧ください

Encore.ts を使用して静的ファイルを提供する方法を示すサンプル アプリ

コード例

Encore.ts での静的ファイルの提供は、API エンドポイントを定義する場合と同様に機能しますが、通常の API 関数の代わりに api.static 関数を使用します。

import { api } from "encore.dev/api";

export const assets = api.static(
  { expose: true, path: "/frontend/*path", dir: "./assets" },
);

これにより、/frontend パス プレフィックスの下の ./assets ディレクトリ内のすべてのファイルが提供されます。

Encore は、index.html ファイルをディレクトリのルートに自動的に提供します。上記の場合、URL /frontend をリクエストするとファイル ./assets/index.html が提供され、/frontend/hello はファイル ./assets/hello または ./assets/hello/index.html が提供されることを意味します (存在するもの)。

まとめ

Node.js と並行して Rust ベースのランタイムを使用することにより、Encore.ts は TypeScript アプリケーションのパフォーマンスを向上させることができます。

プロジェクトにとってパフォーマンスが重要な場合は、Encore.ts を試してみることをお勧めします。

すべてオープンソースなので、コードをチェックアウトして GitHub に貢献できます。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/encore/high-performance-nodejs-static-file-serving-using-rust-420m?1 侵害がある場合は、[email protected] に連絡して削除してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3