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