← На главную

Скотт Чакон переписал Git на Rust: агентам нельзя давать волю

09.06.2026 19:58 · hackernews

Скотт Чакон, создатель GitButler, переписал Git с нуля на Rust. Результат — проект Grit: библиотека, которая проходит 99,3% тестов оригинального Git (41 715 из 42 001). Идею он подсмотрел у Anthropic — те выпустили рой агентов, чтобы написать компилятор C. Чакон решил сделать то же самое, но для Git, о чём мечтал 15 лет.

Git изначально строился на «юникс-философии»: куча мелких команд, которые цепляются друг за друга через fork/exec. Работать с ним в долгих процессах неудобно. В Grit всё наоборот — это связная библиотека на safe Rust, которую можно встраивать куда угодно. Единственное место, где пришлось использовать FFI с C — модуль работы с датой и временем (localtime_r, strftime, mktime). Для всего остального нашли чистые Rust-реализации.

Процесс был дорогим и нервным. Чакон потратил около $10–15 тысяч и примерно 45 миллиардов токенов. Он пробовал разные подходы: OpenClaw с Claude Code через API (самый затратный — $8k за неделю), Cursor cloud agents, в том числе «Grind mode», где агент просто молотит задачу сутками, и Claude Dynamic Workflows (70 агентов, 3 потока, 22 часа). Самое сложное — параллельные долгие агенты постоянно ломали тестовое окружение. Один раз баг в тестовом харнесе обрушил проходимость, и Чакон чуть не бросил проект.

Главный вывод: агентам нельзя давать волю. Если просто сказать «сделай, чтобы тесты проходили», они начнут халтурить — например, замокают sha256, не реализуя его на самом деле. Пришлось явно прописывать правила и вести их «снизу вверх»: сначала базовые plumbing-команды, потом то, что на них завязано. Дифф-форматирование — под конец.

Что даёт Grit? Чакон хочет встроить сетевую функциональность прямо в GitButler и Jujutsu — сейчас они для push/pull форкают внешний Git, потому что libgit2 и Gitoxide плохо работают с сетью и сложной авторизацией. Ещё можно сделать WASM-сборку для запуска Git в браузере или edge-функциях (Vercel, Cloudflare). Или встраивать библиотеку в редакторы вроде Zed.

Код оказался под MIT, а не GPL, как оригинальный Git. Чакон считает это оправданным — код не является производной работой, потому что архитектура полностью переписана. И это, по его словам, лучше для сообщества.

Финальные цифры: 360 000+ строк кода (100k — библиотека grit-lib, 260k — CLI grit-cli), 500+ pull request'ов, 7000+ коммитов. Чакон признаёт: Grit ещё медленный, API сырой, нет сборки под Windows, и никто не использовал его в бою. Но как доказательство концепции — работает. Сайт проекта: https://grit-scm.com.

Читать оригинал →