Skip to content

Производительность

Nestelia добавляет тонкий слой декораторов и внедрения зависимостей поверх Elysia — практически без потери производительности. Результат: удобство разработки как в NestJS на скорости Elysia.

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 + Сервис 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 выполняет всё внедрение зависимостей, связывание модулей и регистрацию маршрутов на этапе запуска. Во время обработки запросов простые хендлеры вызывают методы сервисов напрямую — без цепочки middleware, без поиска по контейнеру, без рефлексии.

NesteliaNestJS
РантаймBunNode.js
HTTP слойElysiaExpress (по умолчанию)
DI разрешениеНа этапе запускаНа этапе запуска
Рефлексия метаданныхКэшируется при стартеНа каждый запрос
Request contextFast path пропускаетВсегда создаётся
Цепочка middlewareНет (обработчики Elysia)Стек middleware Express
ВалидацияElysia TypeBox (на этапе компиляции)class-validator (рефлексия в рантайме)

Распространяется по лицензии MIT.