Skip to content

パフォーマンス

Nestelia は Elysia の上にデコレーターと依存性注入の薄いレイヤーを追加します — パフォーマンスへの影響はほぼゼロです。結果:Elysia レベルの速度で NestJS スタイルの開発体験を実現。

1.7x faster than Fastify
1.9x faster than Express
2.3x faster than NestJS
ElysiaBun
74,395 reqs/s
NesteliaBun
71,703 reqs/s
FastifyNode
42,640 reqs/s
ExpressNode
37,825 reqs/s
NestJSNode
30,582 reqs/s
5 シナリオの平均リクエスト数/秒。500 接続、シナリオごとに 10 秒。macOS arm64、Bun 1.3、Node 24。

シナリオ別結果

シナリオNesteliaElysiaFastifyExpressNestJS
Plain Text GET /74,91479,28747,60040,38538,413
JSON GET /json73,43876,92545,01038,80736,527
Path Params GET /user/:id74,28975,07745,74738,25027,598
POST JSON POST /user62,39963,48729,79334,03824,833
DI + Service GET /users73,47677,19745,05137,64725,539
平均71,70374,39542,64037,82530,582

再現方法

bash
# ベンチマーク依存関係をインストール
cd benchmark && bun install && cd ..

# 負荷テストツールをインストール
brew install bombardier

# すべてのベンチマークを実行(5 シナリオ × 5 フレームワーク)
bun run bench

# または特定のフレームワークを実行
bun run bench nestelia elysia fastify

なぜ Nestelia は速いのか?

Nestelia はすべての依存性注入、モジュール配線、ルート登録を起動時に解決します。リクエスト処理時には、コントローラーがサービスメソッドを直接呼び出します — ミドルウェアチェーンもリクエストごとのコンテナ検索もありません。

NesteliaNestJS
ランタイムBunNode.js
HTTP レイヤーElysiaExpress(デフォルト)
DI 解決起動時起動時
メタデータリフレクション起動時にキャッシュリクエストごと
リクエストコンテキスト高速パスでスキップ常に作成
ミドルウェアチェーンなし(Elysia ハンドラー)Express ミドルウェアスタック
バリデーションElysia TypeBox(コンパイル時)class-validator(ランタイムリフレクション)

MIT ライセンスの下で公開されています。