Perfscale news #12.
Perfscale news #12. WASM-библиотеки, SDK для авторов и «живые» логи
Всех категорически приветствую, любители нагрузки. Прошлый выпуск был про токены и SQID, а сегодня у нас целая неделя WASMа. Погнали!
- Новости Perfscale № 1
- Perfscale news #2: Fix Protocol, Magic metrics и MCP
- perfscale news #3 Websocket, Inference, NPM
- Perfscale news #4. GRPC, Fixed Triggers, Child Process
- Perfscale news #5. SQL, Thresholds, неработающие Linked Accounts
- Perfscale news #6. GraphQL, поддержка Import, и метрики
- Perfscale news #7. Fix Import, SOAP, and more HTTP metrics
- Perfscale news #8. WS Benchmark, Jmeter open sourced & fixed linked accounts
- Perfscale news #9. GPU, LLM, Docker images
- Perfscale news #10. Shared variables, Pub/Sub load testing & live metrics
- Perscale news #11. Fine‑grained token, SQID, stdout log streaming
WASM-библиотеки (RFC 005)
Самое большое, что случилось с движком за последнее время — поддержка библиотек. Идея простая: пользователь должен мочь написать свою функцию-генератор значений (типа random, но свой), а движок её подгрузит и выполнит. Да, мы потеряем в "скорости", но ждите следующей недели, там будет интересно!
Вышло это в три захода, как положено:
• v0.20.0 — нативная библиотека @std /random и единообразное раскрытие ${…} теперь во всех экшенах, а не где попало.
• v0.21.0 — WASM-библиотеки: загрузчик на wasmtime, capabilities (что библиотеке можно), локальные пути.
• v0.22.0 — perfscale install и perfscale.lock : ссылки на удалённые библиотеки, офлайн-резолюция через кеш. Как положено взрослым пакетным менеджерам.
Заодно lint научился ругаться на относительные пути библиотек правильно — привязывает их к объявляющему файлу, как run.
Как этим пользоваться
Чтобы авторы не страдали, завезли инфраструктуру:
- @perfscale /library-sdk в npm — TypeScript SDK для написания WASM-библиотек. library-template — минимальный шаблон, склонировал и погнал. library-random — наш собственный порт @std /random на WASM, с e2e тестами и релизным CI. Можно смотреть как на референс.
Документацию тоже обновили, страница «Libraries» уже ждёт.
Живые логи через WebSocket
Помните, в #11 мы рассказывали про stdout-стриминг в OSS? Так вот платформа тоже не отстала: теперь логи задач стримятся в реальном времени по WebSocket — открыл задачу и смотришь, как она «дышит», без рефреша.
Q: А старый SSE куда делся?
A: Никуда, но теперь для задач есть полноценный ws-транспорт, а для нереализованных способов доставки (poll) мы честно говорим об этом, а не молчим.
Заодно кросс-репликовое состояние BFF переехало в Redis — теперь неважно, на какую реплику вас закинул балансировщик, ваш стрим не потеряется.
И… это не все изменения, но самые большие и значимые в рамках проекта. А на этом у меня сегодня все.
Традиционно желаю вам WASMа без segfaultов и SLO в 99,999%.
- https://www.npmjs.com/package/@perfscale/library-sdk
- https://perfscale.ru/blog/wasm-libraries
- https://perfscale.ru/docs/concepts/libraries
Здесь пока пусто
У первых комментариев больше шансов попасть в топ. Пишите!