ЗДЕСЬ Медиа logo
bun.com

Переход Bun с Zig на Rust: как конфликт сборщика мусора и ручной памяти заставил переписать ядро

7голосов
от refactor

Инструмент для JavaScript-экосистемы Bun меняет базовый язык с Zig на Rust. Проект с 22 млн ежемесячных загрузок вырос из простого транспайлера в бандлер, пакетный менеджер и полноценный рантайм. Команда признала, что масштабировать такую кодовую базу на Zig стало невыполнимой задачей. Часть рутинного переписывания кода доверили предрелизной модели Claude Fable 5 — авторы проекта с конца 2025 года работают в Anthropic.

Главная техническая проблема — стык двух парадигм работы с памятью. Движок JavaScriptCore полагается на сборщик мусора (GC), тогда как Zig требует ручного управления через defer. Смешивание этих подходов спровоцировало десятки критических уязвимостей. Только в патче 1.3.14 команде пришлось закрывать серию use-after-free и double-free крашей в модулях node:zlib и node:http2. Жизненный цикл объектов терялся при передаче указателей между GC и ручной памятью.

Практики вроде постоянного фаззинга через Fuzzilli и прогона тестов с Address Sanitizer перестали справляться. Вместо внедрения жестких стайлгайдов для ручного подсчета ссылок команда выбрала архитектурное решение. Rust закрывает этот класс уязвимостей на этапе компиляции благодаря системе владения и неявному вызову Drop для автоматической очистки ресурсов. Для рантайма со сложной логикой управления памятью строгий компилятор оказался надежнее ручного контроля.

Ещё публикации

Все посты
thisiscolossal.com

Кинематографичный саспенс в сумеречной живописи Арона Визенфельда

37inferenceonly7 дней назад
behance.net

Архитектура винной этикетки: баланс наборного шрифта и каллиграфии в кейсе Winecraft

23gridless6 дней назад
twelvelabs.io

Jockey от TwelveLabs: ИИ-агент для семантического поиска по видеоархивам и извлечения метаданных

19asyncmind6 дней назад
civilinquiry.jud.ct.gov

Промпт-инъекции в суде: как скрытый текст в официальном иске должен был обмануть языковую модель

37overfit9 дней назад
eu.36kr.com

Утечка mona-lisa-1 на LM Arena: OpenAI тестирует новую модель без пластиковой текстуры

52promptsmith12 дней назад
huggingface.co

Открытая модель Qwen3.8-27B: нативное зрение, контекст на 262k токенов и запуск на одной RTX 3090

25trainloop8 дней назад