После объявления о переводе JavaScript-платформы Bun на язык Rust при помощи AI и задействования Rust в кодовой базе, на основе которой формируется ветка Bun 1.4, несколько энтузиастов объявили о создании форков платформы, продолжающих развитие с использованием языка Zig. Проект Buz подхватил разработку старой кодовой базы Bun с последнего коммита перед переходом на Rust. Среди особенностей форка заявлено задействование новых возможностей языка Zig и переход на сборочный инструментарий Zig для реализации поддержки очень быстрых инкрементальных пересборок платформы, выполняемых менее чем за секунду. Целью Buz является возможность использования в качестве прозрачной замены Bun и прохождение всех новых тестов, развиваемых для версии Bun на Rust. Из проводимых проектом работ также отмечается модернизация некоторых компонентов с использованием штатной стандартной библиотеки Zig и проведение чистки старой кодовой базы от неактуального кода или кода, созданного через AI, для уменьшения технического долга (уже удалено около 11 тысяч строк кода). Автор форма является противником применения AI, но для разбора уже имеющегося в старой кодовой базе Bun кода, созданного при помощи AI, планируется привлечь AI-инструменты, так как по его мнению вручную разобрать и привести в порядок около 600 тысяч строк "AI-слопа" нереально. До приведения кодовой базы в вид, пригодный для ручной разработки, решено не принимать pull-запросы от людей. При этом AI рассматривается как временный инструмент для чистки кодовой базы и применения идиоматичного языка Zig, чтобы в будущем поддерживать проект без помощи AI.
Второй форк основан на коде Bun 1.3.14 (последний выпуск на Zig ) и опубликован под именем Cruller. Форк ограничен разработкой только Bun Runtime для запуска готовых JavaScript-приложений на сервере и сосредоточен на переводе кода на использование языка Zig 0.16 вместо Zig 0.15. Расширенные возможности Bun, такие как управление пакетами, интеграция с TypeScript, N-API, SQL-клиенты, shell и система тестов, не охватываются форком. Cruller переведён на новую систему сборку и использует прослойки для API, которые изменились между версиями Zig 0.15 и 0.16. Из специфичных возможностей отмечается модуль для встраивания сгенерированного кода, позволяющий создавать автономные сборки, не требующие подгрузки JavaScript-файлов во время выполнения. По сравнению с Bun 1.3.14 размен исполняемого файла Cruller уменьшен с 88 до 73 МБ (-18%), производительность нового Runtime осталась примерно на том же уровне (для сравнения, размер исполняемого файла Bun на Rust сократился на 20%, а производительность увеличилась на 2-5%). При разработке Cruller AI-ассистенты не применяются для генерации кода, а используются только как вспомогательные инструменты для помощи в миграции на Zig 0.16, отладки и написании тестов. Архитектурные решения, рецензирование кода и проверку результатов осуществляет человек.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65981
Второй форк основан на коде Bun 1.3.14 (последний выпуск на Zig ) и опубликован под именем Cruller. Форк ограничен разработкой только Bun Runtime для запуска готовых JavaScript-приложений на сервере и сосредоточен на переводе кода на использование языка Zig 0.16 вместо Zig 0.15. Расширенные возможности Bun, такие как управление пакетами, интеграция с TypeScript, N-API, SQL-клиенты, shell и система тестов, не охватываются форком. Cruller переведён на новую систему сборку и использует прослойки для API, которые изменились между версиями Zig 0.15 и 0.16. Из специфичных возможностей отмечается модуль для встраивания сгенерированного кода, позволяющий создавать автономные сборки, не требующие подгрузки JavaScript-файлов во время выполнения. По сравнению с Bun 1.3.14 размен исполняемого файла Cruller уменьшен с 88 до 73 МБ (-18%), производительность нового Runtime осталась примерно на том же уровне (для сравнения, размер исполняемого файла Bun на Rust сократился на 20%, а производительность увеличилась на 2-5%). При разработке Cruller AI-ассистенты не применяются для генерации кода, а используются только как вспомогательные инструменты для помощи в миграции на Zig 0.16, отладки и написании тестов. Архитектурные решения, рецензирование кода и проверку результатов осуществляет человек.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65981