Как я написал компилятор Svelte на Rust с помощью ИИ-агента: история успеха

Когда стандартный инструментарий Svelte начинает тормозить, большинство разработчиков просто мирятся с этим или ищут обходные пути. Но один энтузиаст Rust решил радикально решить проблему: написать собственный компилятор Svelte на Rust. Пять с половиной месяцев он ковырял проект вручную и бросил, а

Как я написал компилятор Svelte на Rust с помощью ИИ-агента: история успеха

Когда стандартный инструментарий Svelte начинает тормозить, большинство разработчиков просто мирятся с этим или ищут обходные пути. Но один энтузиаст Rust решил радикально решить проблему: написать собственный компилятор Svelte на Rust. Пять с половиной месяцев он ковырял проект вручную и бросил, а через год вернулся с ИИ-агентом и доделал за 106 вечеров, потратив всего $700. Рассказываем, как это было и что из этого вышло.

Почему стандартный компилятор Svelte работает медленно

Svelte — это компилируемый фреймворк для создания пользовательских интерфейсов. В отличие от React или Vue, которые выполняют большую часть работы в браузере, Svelte компилирует компоненты в оптимизированный JavaScript на этапе сборки. Это даёт преимущества в производительности, но сам компилятор, написанный на JavaScript, может быть узким местом.

Сборка проекта на Svelte включает несколько этапов: парсинг компонентов, анализ зависимостей, генерация кода. Каждый из этих этапов требует времени, особенно на больших проектах. Дев-сервер, который пересобирает модули при изменениях, также может подтормаживать. А svelte-check и LSP (Language Server Protocol) — инструменты для проверки типов и автодополнения в редакторе — часто заставляют ждать, что раздражает разработчиков.

Rust славится скоростью и безопасностью памяти, поэтому идея написать компилятор на Rust выглядит логичной. Подобные проекты уже существуют: например, SWC (Speedy Web Compiler) и Turbopack, которые используют Rust для ускорения сборки JavaScript-проектов. Однако для Svelte такого готового решения не было, и автор решил заполнить этот пробел.

Как зародилась идея написать компилятор Svelte на Rust

Всё началось с боли: стандартный инструментарий Svelte, основанный на JavaScript, работал медленно. Сборка занимала много времени, дев-сервер подтормаживал, а svelte-check и LSP заставляли ждать. Автор, известный в определённых кругах как энтузиаст Rust, решил, что компилятор на Rust будет быстрее и надёжнее. Он поставил перед собой задачу: написать компилятор Svelte, который транслирует Svelte-компоненты в эффективный JavaScript, но при этом работает в разы быстрее оригинального.

Первая попытка длилась пять с половиной месяцев. Автор писал код вручную, погружаясь в тонкости синтаксиса Svelte, парсинга и генерации кода. Однако проект оказался слишком объёмным и сложным: пришлось разбираться с множеством нюансов, включая реактивность, стили, обработку событий и совместимость с экосистемой. В итоге он бросил проект, устав от бесконечных проблем и отсутствия видимого прогресса.

Через год, когда ИИ-инструменты стали значительно мощнее, автор решил попробовать снова. На этот раз он использовал ИИ-агента, который помогал генерировать код, анализировать ошибки и предлагать решения. Это стало переломным моментом: проект, который казался безнадёжным, начал двигаться вперёд.

Что именно делает компилятор Svelte на Rust

Компилятор Svelte на Rust должен выполнять те же функции, что и оригинальный: разбирать Svelte-компоненты (HTML, CSS, JavaScript), анализировать их, генерировать JavaScript-код, который будет выполняться в браузере. Особенность в том, что Rust-компилятор может работать значительно быстрее, особенно на больших проектах, и потреблять меньше памяти.

На практике это означает, что сборка проектов на Svelte может ускориться в несколько раз, а svelte-check (проверка типов) и LSP (автодополнение и диагностика в редакторе) станут отзывчивее. Для разработчиков, работающих с крупными кодовыми базами, это критически важно: каждый лишний секунд ожидания — потерянное время и раздражение.

Какие технические вызовы пришлось преодолеть

Автор не раскрывает все детали, но из его рассказа ясно, что ИИ-агент использовался для генерации кода по описаниям, исправления ошибок, рефакторинга и даже для планирования следующих шагов. Это позволило ускорить разработку в разы: то, что раньше требовало недель ручной работы, теперь делалось за несколько вечеров.

Однако не всё было гладко. ИИ-агент иногда генерировал код с ошибками, которые приходилось исправлять вручную. Понимание тонкостей синтаксиса Svelte и генерации корректного JavaScript требовало от автора глубоких знаний и критического мышления. Тем не менее, общий прогресс был впечатляющим.

Интересно, что автор потратил около $700 на использование ИИ-инструментов (вероятно, на подписки и API). Это сравнительно небольшая сумма по сравнению с тысячами часов ручной работы, которую удалось сэкономить.

Кому нужен быстрый компилятор Svelte

В первую очередь эта история интересна разработчикам, использующим Svelte в своих проектах. Если компилятор на Rust станет стабильным и будет опубликован, они смогут ускорить свои процессы разработки. Это особенно актуально для команд, работающих над большими приложениями, где каждая секунда сборки на счету.

Также это может повлиять на экосистему Svelte: если появится быстрая альтернатива компилятору, возможно, она будет интегрирована в официальные инструменты или станет основой для новых инструментов. Для авторов библиотек и фреймворков это открывает возможности для оптимизации.

В России и СНГ тема тоже актуальна: многие разработчики используют Svelte для создания интерфейсов, и проблемы со скоростью сборки им знакомы. Возможно, этот проект станет примером того, как ИИ помогает решать сложные технические задачи.

Перспективы проекта: что будет дальше

Автор пока не сообщает, планирует ли он опубликовать компилятор как открытый проект или использовать его в коммерческих целях. Однако сам факт завершения работы говорит о том, что проект жизнеспособен. Возможно, в ближайшее время мы увидим бенчмарки, сравнения с оригинальным компилятором и, возможно, даже релиз.

Судя по тенденциям, использование ИИ в разработке будет только расти. Эта история — яркий пример того, как ИИ-агенты могут превращать «невозможные» проекты в реальные. Остаётся надеяться, что автор поделится кодом и опытом, чтобы другие могли воспользоваться его наработками.

Итог

История о компиляторе Svelte на Rust — это не только техническое достижение, но и свидетельство того, как ИИ меняет подход к разработке. Сочетание настойчивости и современных инструментов позволило завершить проект, который казался безнадёжным. Для сообщества это сигнал: если у вас есть смелая идея, возможно, стоит попробовать снова — с ИИ-помощником за плечами.