Bun 1.3.6: нативный JSONC, Archive API, метафайл esbuild — что полностековым командам следует сделать сейчас

Node.jsИнструментыВремя выполнения

Summary

  • 13 января 2026 года вышла версия Bun 1.3.6, которая включает набор практических инструментов и функций времени выполнения (нативный парсинг JSONC, встроенный API для tar-архивов, вывод метафайла, совместимый с esbuild) и множество исправлений производительности и совместимости. Эти изменения имеют непосредственное значение для команд, использующих Bun в качестве времени выполнения, сборщика или CI-сборщика, поскольку они снижают зависимость от сторонних библиотек, улучшают паритет анализа сборок с esbuild и закрывают тонкие уязвимости безопасности и совместимости. (bun.com)

Что изменилось (высокое влияние)

  • Bun.JSONC: нативный парсинг для JSON с комментариями (tsconfig.json, настройки VS Code). Влияние: вы можете отказаться от небольших зависимостей для парсинга JSONC и надежно и быстрее парсить конфигурации во время выполнения.
  • Bun.Archive: встроенный API для создания/извлечения tar(.gz) архивов. Влияние: меньше внешних инструментов для упаковки и воспроизводимых артефактов сборки в одном файле; лучшая производительность для задач упаковки.
  • Bun.build метафайл: добавляет опцию метафайла, совместимую с esbuild. Влияние: вы можете создавать meta.json из сборок Bun и повторно использовать существующие инструменты анализа сборок (squoosh, проверки в стиле bundlephobia) без пользовательских адаптеров.
  • Response.json и производительность сериализации JSON: паритет Response.json() с ручным JSON.stringify + Response; другие улучшения с использованием SIMD уменьшают стоимость сериализации и операций с буферами в высокопроизводительных сервисах.
  • Прокси WebSocket и S3 Requester Pays: исправления для корпоративных прокси-сред и доступа к S3 с оплатой по запросу в клиенте S3 Bun.
  • Исправления безопасности/совместимости: проверки на обход пути при извлечении tar и множество исправлений ошибок сборщика/сборки, которые влияют на развертывания на краю и исполняемые файлы в одном экземпляре.

Почему это важно для полностековых команд

  • Меньше зависимостей времени выполнения: нативные API JSONC и архивов уменьшают поверхность атаки и необходимость в обслуживании зависимостей для конфигурационных/упаковочных конвейеров.
  • Лучший паритет инструментов CI и сборок: метафайл esbuild делает сборки Bun совместимыми с установленными конвейерами анализа (размерные ограничения CI, автоматизированная проверка чанков).
  • Быстрее ответы сервера и этапы сборки: ускорение сериализации и буферов может значительно снизить задержку и время выполнения CI для I/O-нагруженных сервисов.
  • Готовность для предприятий: поддержка прокси для WebSocket и обработка Requester Pays закрывают пробелы, которые ранее требовали пользовательских обходных путей при работе в корпоративных или облачно-ограниченных средах.
  • Безопасность: усиление извлечения tar предотвращает распространенный вектор для ошибок в цепочке поставок/упаковки.

Практический контрольный список (конкретный, низкий риск внедрения)

  1. Оцените в функциональной ветке
    • Обновите до Bun 1.3.6 в ветке вашего CI-образа (docker-образ или ВМ), запустите полные тестовые наборы и дымовые тесты. Измерьте время сборки и ключевые показатели (сборка пакета, запуск сервера, задержка API).
  2. Намеренно замените небольшие зависимости
    • Где вы в настоящее время парсите tsconfig.json / настройки .vscode с помощью стороннего парсера JSONC, проведите целевое тестирование замены, используя Bun.JSONC.parse() и подтвердите идентичное поведение (комментарии, завершающие запятые, порядок).
  3. Добавьте вывод метафайла в сборки
    • Включите метафайл в bun.build/bun build (metafile: true или --metafile) и передайте сгенерированный JSON в ваш существующий анализатор сборок или размерный порог CI. Убедитесь, что карты чанков и атрибуции размеров соответствуют ожиданиям.
  4. Протестируйте потоки архивов и безопасное извлечение
    • Если вы создаете или используете tarball в конвейерах сборки/выпуска, переключитесь на Bun.Archive для создания/извлечения и проведите тесты на обход пути извлечения (попытки побега символических ссылок, абсолютные пути), чтобы подтвердить, что Bun отклоняет небезопасные случаи.
  5. Проверьте сценарии WebSocket + прокси
    • Если вы работаете в средах с корпоративными HTTP/HTTPS прокси, проверьте опцию прокси WebSocket в Bun как для wss/ws, так и для аутентифицированных прокси.
  6. Проведите аудит нативных модулей и исполняемых файлов в одном экземпляре
    • Если вы используете встроенные .node аддоны или исполняемые файлы в одном экземпляре, проведите полные интеграционные тесты — примечания в релизе указывают на улучшенную загрузку, но также и исправления для предыдущих крайних случаев.
  7. Производительность и мониторинг
    • Проведите бенчмаркинг Response.json() и тяжелых JSON путей на стадии. Добавьте флаги наблюдаемости (время сборки, задержка сериализации), чтобы обеспечить выявление регрессий.
  8. Стратегия внедрения
    • Проведите канареечное тестирование времени выполнения для небольшого процента трафика или агентов CI в течение 48–72 часов; следите за ошибками, холодными стартами и отчетами по анализу сборок; затем продвигайте.

Риски и предостережения

  • Не подходит для всех: если ваш стек зависит от очень специфических особенностей esbuild или поведения нативных аддонов, тщательно протестируйте; паритет метафайла помогает анализу, но не гарантирует идентичной семантики загрузчика.
  • Нативные зависимости и N-API: поведение исполняемых файлов в одном экземпляре и встроенных .node улучшилось, но нативные модули все еще требуют тщательного тестирования на сборках Linux, macOS и Windows.
  • Позиция безопасности: исправление извлечения tar является усилением безопасности — рассматривайте это как положительное, но проведите аудит существующих архивов на случай, если они полагались на прежнее, более лояльное поведение.

Итог Bun 1.3.6 — это практический релиз с низким уровнем трения для команд, использующих Bun в качестве времени выполнения или сборщика: используйте новые функции JSONC и метафайла, чтобы упростить конфигурации и интегрировать сборки Bun в существующий CI/анализ, протестируйте улучшения архивов и прокси, и проведите канареечное тестирование времени выполнения, следя за метриками сериализации и сборки. Релиз снижает поверхность зависимостей и улучшает паритет наблюдаемости с esbuild — хороший кандидат для контролируемого внедрения в этом квартале. (bun.com)

Source

  • Примечания к релизу Bun v1.3.6 (блог Bun). (bun.com)

Source

Читать дальше