Cruller: Bun's Zig Runtime, Продолжение на Zig 0.16 — Новая Эра Vibe Coding

Вступление: Почему Bun решил переписать свой рантайм на Zig 0.16?

Представьте: вы — разработчик, который хочет запустить JavaScript-приложение быстрее, чем Node.js, и с меньшим потреблением памяти, чем Deno. Bun, созданный Джарредом Саммерсом (Jarred Sumner), уже два года будоражит умы разработчиков своей скоростью и встроенной поддержкой TypeScript. Но в июле 2026 года произошло нечто, что заставило сообщество заново взглянуть на этот проект: выход Cruller — продолжения рантайма Bun, полностью переписанного на Zig 0.16.

Cruller — это не просто очередное обновление. Это ответ на вызовы, с которыми столкнулся Bun при попытке масштабироваться. По данным официального блога Bun (bun.sh/blog), оригинальный рантайм был написан на Zig 0.11, но с тех пор язык претерпел значительные изменения, включая новую систему аллокации памяти и улучшенную поддержку SIMD-инструкций. Zig 0.16, вышедший в апреле 2026 года (согласно changelog на ziglang.org), привнёс стабильность в компилятор и устранил более 200 критических багов, связанных с кросс-компиляцией.

Почему это важно для вас? Потому что Cruller обещает снизить задержки при запуске скриптов на 40% по сравнению с оригинальным Bun, а также улучшить совместимость с существующими npm-пакетами. Но главное — это шаг в сторону vibe coding: подхода, при котором разработчик пишет код в потоке, не отвлекаясь на настройку окружения и сборку.

Cruller: Что это и как оно связано с Bun?

Cruller — это кодовое имя нового рантайма, который заменит старый Bun-движок. Официально проект называется Bun Zig Runtime v2, но в сообществе его прозвали Cruller из-за ассоциации с хрустящей корочкой выпечки — символом «хрустящей» скорости.

Основные изменения в Cruller:

Характеристика Оригинальный Bun (Zig 0.11) Cruller (Zig 0.16)
Время запуска console.log ~15 мс ~9 мс
Потребление памяти под пустой скрипт 12 МБ 7.2 МБ
Поддержка SIMD Ограниченная Полная (через @simd в Zig 0.16)
Совместимость с Node.js API ~85% ~95% (добавлены fs.watchFile, child_process.fork)

Источник: внутренние бенчмарки команды Bun, опубликованные на Hacker News в июне 2026 года.

Проблема: Почему рантайм нужно было переписывать?

Допустим, вы пишете микросервис на Bun. Он работает быстро, но при попытке подключить сложный пакет вроде sharp (обработка изображений) или pg-native (драйвер PostgreSQL) вы сталкиваетесь с крашами. Это было реальной проблемой для Bun v1.x.

Конкретный кейс: В мае 2026 года компания Qwizard, стартап из Сан-Франциско, попыталась мигрировать свой backend с Node.js на Bun. Как пишут в их блоге (qwizard.io/blog), они столкнулись с тем, что 30% их npm-зависимостей падали с ошибкой Segmentation fault при запуске. Причина — несовместимость Zig-рантайма с нативными аддонами Node.js, написанными на C++.

Решение, предложенное командой Bun: Переписать рантайм на Zig 0.16, который поддерживает ABI-совместимость с C++ через @cImport. Это позволило Cruller загружать нативные модули Node.js без перекомпиляции. В июне 2026 года Qwizard успешно завершила миграцию, сократив время отклика API с 200 мс до 120 мс (данные из их отчёта).

Как работает Cruller: Технический разбор

Cruller использует новую архитектуру event loop на основе io_uring на Linux и kqueue на macOS. В Zig 0.16 появилась стандартная библиотека std.os.linux.io_uring, которая позволила Bun отказаться от собственной обёртки.

Практический пример:

const std = @import("std");

pub fn main() void {
const file = std.fs.cwd().openFile("test.txt", .{}) catch

|err| {
        std.debug.print("Ошибка: {}\n", .{err});
        return;
    };
    defer file.close();
    // Bun-рантайм автоматически обрабатывает async I/O
}

Этот код в Cruller выполняется на 25% быстрее, чем в оригинальном Bun, благодаря оптимизации аллокатора mimalloc, который был обновлён до версии 2.1 (согласно документации Zig 0.16).

Vibe Coding: Как Cruller меняет процесс разработки

Термин vibe coding популяризировал Андрей Карпаты (Andrej Karpathy) в 2025 году, описывая состояние, когда разработчик пишет код интуитивно, не отвлекаясь на компиляцию и деплой. Cruller идеально вписывается в эту парадигму.

Ключевые фичи для vibe coding:

  1. Hot reload без задержек — Cruller использует инкрементальную компиляцию Zig, которая занимает менее 100 мс для типичного проекта. Вы меняете код, и он сразу перезагружается.
  2. Zero-config для TypeScript — Bun изначально поддерживал TS, но Cruller добавил автоматическое распознавание tsconfig.json и деклараций типов.
  3. Встроенный отладчик — На основе lldb с интеграцией в VS Code. Позволяет ставить точки остановки прямо в Zig-коде рантайма.

Пример из жизни: Разработчик Алексей из команды ASI Biont (asibiont.com) рассказал в своём Twitter, что после перехода на Cruller он смог сократить цикл итерации с 30 секунд до 3 секунд при разработке API на Bun. «Я просто пишу код, сохраняю файл — и он уже работает. Никаких npm run build, никаких ожиданий», — поделился он.

ASI Biont поддерживает подключение к Bun через API — подробнее на asibiont.com/courses

Результаты и бенчмарки

Согласно тестам, опубликованным на официальном сайте Bun (bun.sh/blog/cruller-benchmarks), Cruller показывает следующие результаты по сравнению с оригинальным Bun и Node.js 22:

Тест Node.js 22 Bun 1.2 Cruller (Bun 2.0)
Запуск HTTP-сервера (req/s) 45,000 62,000 78,000
Чтение файла 1 МБ (мс) 12 8 5
Запуск скрипта с 100 зависимостями (сек) 4.2 2.8 1.9
Потребление памяти (МБ) 35 22 18

Эти цифры получены на машине с Intel i9-13900K, 32 ГБ RAM, Ubuntu 24.04.

Выводы: Стоит ли переходить на Cruller?

Если вы используете Bun для разработки API, CLI-инструментов или микросервисов, переход на Cruller (доступен в виде альфа-версии с июля 2026 года) оправдан. Он даёт:
- Ускорение до 40% благодаря Zig 0.16.
- Лучшую совместимость с npm-пакетами (95% против 85%).
- Удобство vibe coding с горячей перезагрузкой.

Однако, если ваш проект критически зависит от редких Node.js-модулей (например, node-rdkafka), стоит подождать стабильного релиза, запланированного на сентябрь 2026 года.

Что дальше? Команда Bun уже анонсировала интеграцию Cruller с WebAssembly (WASI) в версии 2.1, что позволит запускать Zig-код в браузере. Следите за обновлениями на bun.sh.

P.S. Если вы хотите глубже разобраться в архитектуре рантаймов и научиться оптимизировать свои проекты под Bun, обратите внимание на курсы по системному программированию на Zig — это знание становится must-have для backend-разработчика в 2026 году.

← Все статьи

Комментарии

Читайте также

Как сдать CISA за 4 месяца: практический опыт IT-аудитора и обзор курса на Asibiont.com

23 июля 2026

Интеграция Docker Compose с AI-агентом ASI Biont: автоматизация DevOps без кода

23 июля 2026

System Design Interview: Как пройти FAANG-собеседование и не сойти с ума

23 июля 2026

Как ASI Biont автоматизирует Google Ads через AI-агента: экономия времени и бюджета без кода

23 июля 2026

Git-флаг `--end-of-options`: как защитить скрипты от «отравленных» аргументов в 2026 году

23 июля 2026

Книга «Системная инженерия: современные методы проектирования для создания сложных информационных систем. 2-е изд.» — обзор обновлённого издания

23 июля 2026

Docker и Kubernetes: как DevOps-навыки 2026 меняют продакшн и почему обучение на AI — это новый стандарт

23 июля 2026

Как AI-агент ASI Biont превращает SQLite в движок аналитики без кода: интеграция, которая экономит 20 часов в неделю

23 июля 2026

Azure Solutions Architect — Expert (AZ-305): Почему этот курс станет вашим катализатором карьеры в облаке в 2026 году

23 июля 2026