Мы не проводили эту скамейку сами: это сторонние деятели, публичные, с источниками и датами. В этой статье подробно описывается то, что они говорят, лежащая в ее основе методология и что она на самом деле меняет при выборе серверной части, а не сравнение Aurabase с конкурентом.
Ядро Aurabase работает на Rust, на axum и tokio — проверено в Cargo.toml монорепозитория, десяти сервисов, использующих одну и ту же зависимость. Но на сегодняшний день мы не опубликовали никаких собственных показателей производительности. Если вы ищете точную задержку Aurabase, ее пока не существует: методология будет стоять перед числом, а не наоборот.
Самое необходимое
- На Sharkbench (общественный стенд, Ryzen 7 7800X3D, Docker/Linux, 24.08.2025): Actix, Hyper, Axum и Rocket работают с частотой от 18 047 до 21 965 запросов/с при 1,4–1,7 мс. Fastify, Koa и Express ограничивают скорость от 5766 до 9340 запросов/с на стороне Node.js и составляют 3,4–5,5 мс.
- Среда выполнения весит столько же, сколько и язык: тот же код Express переходит от 5766 запросов/с на Node.js до 18 917 запросов/с на Bun — коэффициент ×3,3 без изменения строки.
- Разрыв в памяти наиболее очевиден: 8,5 МБ для Axum против 82,5 МБ для Express/Node.js — что соответствует отсутствию сборщика мусора в Rust.
- На сегодняшний день Aurabase не опубликовала никаких собственных тестов. Ядро Rust/axum/tokio проверяется в коде, а не на производительности.
- Отдельные цифры ничего не доказывают: аппаратное обеспечение, версия платформы, размер полезной нагрузки и уровень конкуренции влияют на рейтинг больше, чем сам язык.
Что показывает недавний сторонний стенд
Sharkbench — это независимый проект сообщества, который измеряет три вещи: способность платформы обрабатывать одновременные HTTP-запросы, операции ввода-вывода и сериализацию JSON. Тест проводится под Docker/Linux на Ryzen 7 7800X3D, последнее общедоступное обновление выпущено 24 августа 2025 г. (Sharkbench.dev/web, по состоянию на 24 августа 2026 г.).
Источник: Sharkbench, 24 августа 2025 г. — Docker/Linux, Ryzen 7 7800X3D.
Axum — фреймворк, который Aurabase использует для своего ядра Rust, проверенный в Cargo.toml — обрабатывает на этом стенде 21 030 запросов в секунду. Express, платформа Node.js, наиболее используемая в производстве, обрабатывает 5766 на одном и том же оборудовании: коэффициент 3,6. Это не единичный случай. Все четыре протестированных фреймворка Rust попадают в узкий диапазон от 18 000 до 22 000 запросов/с, а три протестированных фреймворка Node.js — между 5 766 и 9 340.
На практике «req/s» измеряет пропускную способность при постоянной параллельной нагрузке, а не скорость изолированного запроса на сайте с низким трафиком. Для конечной точки, вызываемой раз в несколько секунд, разница никогда не заметна. Это становится решающим для горячей конечной точки — потока в реальном времени, общедоступного API с интенсивным трафиком, задания, объединяющего тысячи вызовов — где количество запросов, обработанных на одно ядро ЦП, при одинаковом оборудовании напрямую определяет расходы на инфраструктуру.
Задержка следует той же схеме
Средняя задержка соответствует той же иерархии на этом стенде: от 1,4 до 1,7 мс для протестированных фреймворков Rust по сравнению с 3,4–5,5 мс для протестированных фреймворков Node.js.
Источник: Sharkbench, 24 августа 2025 г. — средняя задержка, не p99.
Этот показатель является средним, а не р99. Мусорные паузы в управляемой среде выполнения в основном влияют на очередь отправки — самые медленные запросы, а не медианные. Это тема отдельной статьи из этой серии: , почему отсутствие сборщика мусора меняет задержку p99.
Почему у Rust нет перерыва в сборе мусора, чтобы заплатить
Rust управляет памятью по принципу владения, что проверяется во время компиляции — сборщик мусора не работает в фоновом режиме и не прерывает выполнение. Официальная книга Rust резюмирует это следующим образом: «Ни одна из особенностей владения не замедлит работу вашей программы во время ее работы» (The Rust Programming Language, doc.rust-lang.org, по состоянию на 24 августа 2026 г.). Память освобождается, как только владеющая ею переменная выходит за пределы области действия — известное время во время компиляции, а не непредсказуемая пауза во время выполнения.
Node.js, наоборот, работает в одном потоке JavaScript и делегирует операции ввода-вывода ядру через многофазный цикл событий (таймеры, отложенные обратные вызовы, опрос, проверка...) — но любые синхронные вычисления в этом потоке, включая этап сборки мусора из движка V8, блокируют выполнение во время его работы (официальная документация Node.js, nodejs.org, доступ к августу 24, 2026). Это разница в модели памяти, а не в деталях реализации.
Настоящий сюрприз: среда выполнения весит столько же, сколько язык.
Самый нелогичный результат того же стенда не касается Rust: он касается самого Node.js. Express — один и тот же код, одно и то же API — переходит с 5766 запросов/с на Node.js до 18 917 запросов/с на Bun, в ×3,3 раза, без изменения ни строчки кода приложения (Sharkbench, 24 августа 2025 г.).
Источник: Sharkbench, 24 августа 2025 г. — тот же код Express, три среды выполнения JavaScript.
В Deno тот же код Express ограничивается скоростью 6088 запросов/с — близко к Node.js, но далеко от Bun. Язык JavaScript идентичен во всех трех случаях; Именно среда выполнения — ее JS-движок, реализация цикла событий, сборка мусора — меняет игру. Сравнивать «Rust» и «Node.js» без указания среды выполнения, версии и фреймворка — это всё равно, что сравнивать конфигурации, а не языки.
На этом же стенде фреймворк Go Gin достигает пика в 3546 запросов в секунду, когда FastHTTP — все еще на Go — достигает 5567 запросов в секунду с задержкой всего 0,7 мс (Sharkbench, 24 августа 2025 г.). Два совершенно разных результата для одного языка: изолированная цифра никогда не суммирует всю экосистему.
Почему одного контрольного показателя никогда не бывает достаточно
TechEmpower Framework Benchmarks иллюстрирует ту же идею в более широком масштабе. Его репозиторий с открытым исходным кодом был обновлен 24 марта 2026 г., а его последний раунд (раунд 23) был предметом публикации от 16 марта 2026 г. (TechEmpower, по состоянию на 24 августа 2026 г.). В этом проекте выполняется множество типов тестов на сотнях реализаций именно потому, что один тест никогда не представляет собой структуру, не говоря уже о языке.
Компания Convex, игрок на рынке баз данных, сформулировала наиболее четкую позицию по этому вопросу: отказываясь участвовать в маркетинговой «войне гистограмм» между конкурирующими базами данных, которая считается вводящей в заблуждение. «Это масштабирование театра, а не масштабирование»,, пишет команда (Convex, по состоянию на 24 августа 2026 г.). Мы разделяем это мнение: голая цифра без опубликованной методологии ничего не доказывает — ни для конкурента, ни для нас.
Что это меняет конкретно: аппаратное обеспечение (ЦП, ОЗУ), точная версия платформы и время выполнения, размер полезной нагрузки JSON, уровень конкуренции и продолжительность теста — все это влияет на рейтинг — иногда больше, чем сам выбор языка. Стенд, который не публикует эти параметры, не воспроизводит и, следовательно, не проверяет себя — см. нашу полную и воспроизводимую методологию для сравнительного анализа серверной части.
Причем здесь Аурабейс?
Основной бэкэнд Aurabase написан на Rust, на axum и tokio — проверено в Cargo.toml монорепозитория: десять сервисов (aura-gateway, aura-auth, aura-db…) используют одну и ту же зависимость рабочего пространства axum (0.8) и одну и ту же среду выполнения tokio, в 2021 г. издание. Шлюз, который маршрутизирует трафик плоскости данных и плоскости управления, в дополнение к axum использует hyper — полную информацию можно найти в нашей статье об архитектуре плоскости данных/управления шлюза. Структура рабочей области Cargo, поддерживающей эти десять сервисов, описана в нашей статье о рабочей области Cargo.
Чего у нас еще нет, так это опубликованных данных о пропускной способности или задержке Aurabase с документированной методологией и аппаратным обеспечением. Это намеренно: мы предпочитаем публиковать методологию перед рисунком, а не наоборот — это тема будущей статьи этой серии.
Для полного сравнения архитектуры — унифицированного ядра Rust в Aurabase и гетерогенного стека Elixir/Go/TypeScript/Node, задокументированного у прямого конкурента — см. наше подробное сравнение Aurabase и Supabase. Если вы уже выполняете миграцию проекта, руководство по миграции Supabase на Aurabase описывает схему, политики RLS и SDK.
Приложение: полная таблица данных
Все строки, приведенные в этой статье, опубликованы Sharkbench 24 августа 2025 г. (Docker/Linux, Ryzen 7 7800X3D).
| Рамки | Время выполнения | Запрос/ы | Задержка | Память |
|---|---|---|---|---|
| Актикс | Ржавчина | 21 965 | 1,4 мс | 16,6 МБ |
| Гипер | Ржавчина | 21 781 | 1,5 мс | 8,6 МБ |
| Аксум | Ржавчина | 21 030 | 1,6 мс | 8,5 МБ |
| Ракета | Ржавчина | 18 047 | 1,7 мс | 6,4 МБ |
| Фиксировать | Node.js | 9 340 | 3,4 мс | 57,0 МБ |
| Коа | Node.js | 8 828 | 3,6 мс | 53,3 МБ |
| Выражать | Node.js | 5 766 | 5,5 мс | 82,5 МБ |
| Выражать | булочка | 18 917 | 1,3 мс | 53,3 МБ |
| Выражать | Дено | 6 088 | 5,0 мс | 130,7 МБ |
| Джин | Идти | 3 546 | 1,0 мс | 16,7 МБ |
| ФастHTTP | Идти | 5 567 | 0,7 мс | 13,4 МБ |
Приведите эти данные: Sharkbench, «Бенчмарки веб-платформы», Sharkbench.dev/web, последнее обновление 24 августа 2025 г.
Часто задаваемые вопросы
Что следует помнить
На приведенном здесь стенде все фреймворки Rust работают в узком диапазоне — от 18 000 до 22 000 запросов/с, 1,4–1,7 мс — намного опережая фреймворки Node.js на самом Node.js (5766–9340 запросов/с, 3,4–5,5 мс). Но среда выполнения меняет ситуацию не меньше, чем язык: Express на Bun почти догоняет Axum на Rust.
Если вы оцениваете серверную часть только по чистой производительности, перед цифрой укажите методологию: оборудование, версию, размер полезной нагрузки, уровень конкуренции. Aurabase еще не опубликовала собственные данные; когда это произойдет, методология будет на первом месте.