https://github.com/denoland/roll-your-own-javascript-runtime Ребята из deno выкатили гайд по созданию своего собственного JS окружения В Deno работает под капотом V8 от гугла, только написан на расте. Также они утверждают, что Deno быстрее ноды Есть идея поресерчить в направлении нагрузки как альтернатива k6
Есть много минусов у k6 (плюсы есть, но перечислять не буду, уж слишком большой текст получится)
- нет промисов(завезли только недавно)
- это отдельный JS движок, написанный на golang (ему требуется проходить ECMA тесты на соответсвия. А у Deno уже тесты ECMA включены)
- в больших проектах как у нас с монорепозиторием невозможно пошарить один и тотже код, приходится писать все равно отдельные утилиты
- нет тестирования БД и прикладных штук кроме браузера
- плохо сделаны репорты
В чем идея - поресерчить перформанс собственной тулзы на расте - самые свежие АПИ. например включит фичу explicit resource management и заработало ключевое слово using - сделать апи как у vitest или playwright. Например defineConfig(/* /) на мой взгляд будет читабельнее - промисы из коробки - fetch вместо http.get / http.post - проверки в привычном виде. expect(actual).toBe(expected) - TS из коробки - апи репортов можно позаимствовать у того-же playwright - JSON в формате trace event (в хроме можно посмотреть такой отчет) - AI репорт (на основе метаданных и самих метрик нагрузки по ходу дела) - создать коллекцию репортов и алертов (алерты теже репортеры по сути - Slack, telegram, email, ops genie) - написать расширение для тестирования прикладных штук помимо Веба, сокетов, gprc. Например БД, electron, react native
Я сам только видос смотрю и вот идея такая появилась. Можно в лс написать, соберем POC вместе. Прямо сейчас я сделал подобие POC где на локальный сервак подается нагрузка k6 -> 97k итерации для 1 vus 10 секунд Custom -> 17к итераций для 1 vus 10 секунд. Наивная реализация, уже не плохо
#performance #ai #v8 @haradkou_sdet