В середине мая 2026 года вышел ForgeZero 1.9.0 — мультиплатформенный консольный инструмент для сборки проектов на C, C++ и ассемблере (NASM, GAS, FASM). Написан на Go, распространяется под лицензией MIT. Главная идея: запустил fz в директории с исходниками — получил исполняемый файл. Никакого Makefile, никакого CMake, никаких конфигурационных ритуалов для базового сценария.
Контекст
Экосистема C/C++ десятилетиями страдает от фрагментации систем сборки. Autotools, CMake, Meson, Bazel, SCons — каждый инструмент решает сложность предыдущего, добавляя свою. Новый разработчик, впервые открывающий легаси-проект, нередко тратит половину дня только на то, чтобы проект вообще собрался. ForgeZero возвращается к нулевой точке: определи файлы автоматически, собери объекты, скомпонуй бинарь. Всё.
Проект стартовал как инициатива одного автора и за несколько версий (1.5 → 1.9) нарастил неожиданно взрослый набор возможностей. Поддерживаются компиляторы GCC, Clang, G++, Clang++; ассемблеры NASM, GAS, FASM; компоновщики LD, GCC, Clang. По умолчанию включены строгие флаги предупреждений (-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion) и санитайзеры AddressSanitizer + UndefinedBehaviorSanitizer. Это не учебный проект — это опиниатированный инструмент с production-дефолтами.
Контекст важен: C и C++ переживают неожиданный ренессанс именно сейчас. Инференс LLM на edge-устройствах, CUDA-ядра, кастомные операторы для нейросетевых фреймворков — всё это низкоуровневый C++. Одновременно растёт спрос на ассемблер в оптимизации критических секций AI-пайплайнов. Простой тулчейн без лишних ритуалов здесь реально экономит время.
Аналитика
Ключевое в 1.9.0 — не одна фича, а совокупность зрелости. LSP-интеграция через генерацию compile_commands.json означает корректную работу с clangd и ccls. Это автодополнение, навигация по коду, диагностика — прямо в Neovim, VSCode, CLion, Emacs. Без LSP любой нетривиальный C++ проект превращается в слепое программирование. Теперь это решается одним флагом -compile-commands.
Кросс-компиляция через флаг -target — второй принципиальный момент. ForgeZero самостоятельно определяет имена компилятора и компоновщика по идентификатору цели: arm-linux-gnueabihf, aarch64-linux-gnu, riscv64-linux-gnu. Для embedded и AI-на-edge (Raspberry Pi, ARM Cortex, RISC-V платы) это означает полный цикл cross-build без кастомных Makefile. Тренд на RISC-V в AI-акселераторах делает эту фичу актуальной прямо сейчас — особенно на фоне роста локального производства микроэлектроники в Азии.
Цифры по тестам говорят о реальном прогрессе: покрытие пакета компоновщика выросло с 17% до 60%, общее покрытие всех пакетов превысило 40%. Добавлен безопасный механизм обновления — fz -update сохраняет текущий бинарь как fz.old перед установкой новой версии. Для open source проекта одного автора — серьёзный сигнал зрелости и ответственного подхода к пользователям.
Кейсы применения в бизнесе
B2B-SaaS стартап с AI-компонентами. Типичный стек: Python-микросервисы с C-расширениями для производительности — computer vision, NLP, кастомные операторы. ForgeZero упрощает сборку расширений в CI/CD: вместо кастомного Makefile на каждый модуль — единая команда fz. Онбординг нового разработчика вместо трёхстраничной инструкции про сборочное окружение превращается в «поставь fz, запусти fz». Экономия — несколько часов на каждый новый найм.
Корпорация с legacy C-кодом. Исторический C-код, который «как-то собирается» по инструкции из 2010 года — знакомая картина. ForgeZero позволяет запустить параллельную сборку без трогания существующей системы, как инструмент аудита и постепенной миграции. Флаг -sanitize=false отключает санитайзеры для кода, который пока не готов к строгим проверкам — можно мигрировать постепенно, модуль за модулем.
Локальный стартап в КР/ЦА, работающий с IoT или промышленной автоматизацией. Прошивки для умных устройств, систем мониторинга, агро- и промышленной автоматизации — это C и ассемблер. Поддержка формата bin для загрузчиков и прошивок плюс кросс-компиляция для ARM закрывают типовой embedded-сценарий без необходимости покупать дорогие коммерческие IDE или настраивать сложный тулчейн с нуля.
Кейсы в личной жизни
Разработчик, осваивающий низкоуровневое программирование. ForgeZero — идеальный старт для тех, кто хочет разобраться с C и ассемблером, но не хочет тратить неделю на GNU Make. Запустил fz -init, написал код, запустил fz — получил исполняемый файл. LSP из первого запуска означает автодополнение и подсказки сразу, без ручной настройки clangd.
Системный программист или участник CTF. Интерактивный режим fz -shell для сборки одиночных файлов удобен при быстром прототипировании, написании shellcode на ассемблере, исследовании бинарей. Поддержка NASM, GAS и FASM в одном инструменте — не нужно переключаться между тулами в зависимости от задачи.
Студент или фрилансер с embedded-проектами. Кросс-компиляция для ARM и RISC-V без лишней настройки — плюс безопасное обновление через fz -update с откатом на fz.old. Можно обновиться до новой версии перед дедлайном и вернуться назад за одну команду, если что-то пошло не так.
Как применить сегодня
- Установить ForgeZero с GitHub (MIT-лицензия), запустить
fz -initв директории C/C++ проекта — структура и конфиг создаются автоматически за 30 секунд. - Запустить
fz -compile-commandsи подключить clangd в VSCode или Neovim — сравнить качество автодополнения до и после. Разница ощутимая. - Для embedded: установить кросс-тулчейн (
arm-linux-gnueabihf-gcc), проверитьfz -target arm-linux-gnueabihfна простом hello-world — убедиться, что кросс-компиляция работает без единого Makefile. - Включить параллельную сборку
fz -j 0(автоопределение числа ядер) на большом проекте и замерить время — на многоядерных машинах прирост бывает существенным. - Если у вас AI-сервис с C++-расширениями: попробовать заменить Makefile в одном модуле на ForgeZero и оценить, насколько упрощается CI/CD пайплайн и онбординг.