Авторы blaze обещают пересборку Rust в 10-24 раза быстрее cargo

Авторы blaze обещают пересборку Rust в 10-24 раза быстрее cargo

На GitHub опубликован blaze (репозиторий indexable-inc/blaze), надстройка над cargo для проектов на Rust. Команды те же, что у cargo, только с приставкой blaze: blaze run, blaze test, blaze build. Любая другая команда cargo передаётся самому cargo без изменений. До 24 октября 2026 года проект назывался ra-jit, и команда cargo ra-jit всё ещё работает.

Первая сборка идёт через cargo, затем нужно несколько секунд, чтобы blaze загрузил проект. Дальше blaze держит проект скомпилированным в памяти. После правки он компилирует только изменённые функции и записывает их в программу, которую cargo уже собрал, вместо того чтобы линковать её заново с нуля. В строке Finished при этом появляется пометка [ra-jit], это движок blaze.

Цифры из README: правки пересобираются быстрее, чем с cargo build, в среднем по реальным проектам в 10 раз на macOS arm64, в 24 раза на Linux aarch64 и в 11 раз на Linux x86-64. От сохранения файла до работающей программы с новым кодом проходит около 20 мс, это относится к живым правкам (live edits). Полные таблицы, проекты и платформы вынесены на отдельную страницу бенчмарков. Это самоотчётные замеры авторов; что именно означает «в среднем» (среднее или медиана), в README не указано.

Программа, которая это допускает, может принимать новый код, не останавливаясь (горячая перезагрузка). В демо-окне Game of Life, которое запускается через nix run github:indexable-inc/blaze, правила, цвета и скорость можно менять на лету только на macOS с процессорами Apple silicon; на других платформах окно работает без живых правок.

Ограничения. Поддерживаются macOS на Apple silicon и Linux; на Windows каждая сборка, это сборка cargo. blaze собирает любой проект своим собственным Rust (сейчас это nightly от 2026-10-25), что бы ни было закреплено в проекте; код на stable и с #![feature(...)] собирается. За скорость приходится платить памятью: для небольшого проекта нужно несколько гигабайт. Сам Rust скачивается один раз (около 100-135 МБ) или берётся из rustup. Авторы называют проект молодым и советуют оставлять последнее слово за cargo check или CI, а о расхождениях с cargo сообщать им.

В README перечислены используемые проекты: rust-analyzer (его анализ и MIR компилирует blaze), Cranelift от Bytecode Alliance (быстрый генератор кода), LLVM и inkwell (для оптимизирующих уровней), salsa (движок инкрементальных вычислений), object, компиляторные крейты Rust и rustd от DioxusLabs, чей код включён в blaze. Там же сказано, что ни один из этих проектов blaze не поддерживает. Лицензия, MIT или Apache-2.0. Инструмент сделан в ix для нативного приложения den. Авторы также работают с несколькими командами над быстрым CI для Rust и удалёнными сборками на основе blaze.

Ключевые факты

  • blaze работает рядом с cargo: держит проект скомпилированным в памяти и после правки перекомпилирует только изменённые функции, записывая их в уже собранную программу.
  • По замерам авторов, пересборка после правок быстрее cargo build в среднем по реальным проектам в 10 раз на macOS arm64, в 24 раза на Linux aarch64 и в 11 раз на Linux x86-64.
  • От сохранения файла до работающей программы с новым кодом, около 20 мс при живых правках.
  • Цена скорости, память (несколько гигабайт на небольшой проект) и собственный Rust nightly от 2026-10-25; Windows не поддерживается, первая сборка идёт через cargo.
  • Проект молодой: авторы советуют оставлять последнее слово за cargo check или CI. До 24 октября 2026 года назывался ra-jit.

Почему это важно

Ожидание пересборки после небольшой правки, именно то, что ускоряет blaze. blaze предлагает не менять привычные команды, а поставить перед ними своё имя и пересобирать только то, что изменилось. По заявлению авторов, выигрыш составляет 10-24 раза на правках и около 20 мс до запуска нового кода при живых правках. Это цифры из README самого проекта, не независимые измерения.

Кому это важно

Разработчикам на Rust под macOS на Apple silicon и Linux, которые много раз за день вносят мелкие правки и ждут пересборку. Отдельно, командам, у которых долгие сборки в CI: авторы пишут, что работают с несколькими такими командами над быстрым CI и удалёнными сборками на основе blaze, и предлагают написать им, что тормозит работу. Пользователям Windows инструмент ничего не даёт: там каждая сборка, сборка cargo.

Как это применить

Установка, одна команда из README (curl ... | sh) для macOS на Apple silicon и Linux; есть варианты через crates.io и Nix. Rust ставить заранее не обязательно: blaze скачивает свой (около 100-135 МБ) или использует rustup. В любом проекте работают blaze run, blaze test и blaze build; первая сборка идёт через cargo, затем blaze несколько секунд загружает проект, после чего правки пересобираются быстро. Остальные команды cargo передаются без изменений. Попробовать без установки можно через nix run github:indexable-inc/blaze, откроется демо-окно Game of Life. Лицензия, MIT или Apache-2.0.

Можно ли доверять

Все цифры взяты из README авторов и представляют собой самоотчётные замеры. README называет их средними по реальным проектам, но не уточняет, среднее это или медиана; проекты и оборудование описаны на отдельной странице бенчмарков, которой в тексте нет. В заголовке на Hacker News упомянуто ускорение до 92 раз, но в тексте README такой цифры нет: там 10, 24 и 11 раз. Сторонних отзывов, данных о внедрении или независимых проверок в источнике нет. Авторы сами называют проект молодым.

Риски и подводные камни

Расход памяти: несколько гигабайт на небольшой проект. blaze собирает всё своим Rust (сейчас nightly от 2026-10-25), независимо от того, что закреплено в проекте, поэтому результат может отличаться от вашей обычной цепочки инструментов; авторы советуют считать последним словом cargo check или CI и сообщать о расхождениях. Ускорение относится к пересборкам после правок, а не к первой сборке, которая идёт через cargo. Живые правки в демо работают только на macOS с Apple silicon. На Windows выигрыша нет. Используемые проекты (rust-analyzer, Cranelift, rustd и другие) blaze не поддерживают.