GitHub завершила перевод ядра командной строки Copilot, настольного приложения и SDK с TypeScript/Node.js на Rust. При переписывании заменили около 800,000 строк рабочего кода, используя в том числе код, сгенерированный ИИ. Благодаря этому время запуска клиента Copilot в том же процессе, где работает среда выполнения, сократилось с 5.25 seconds до 292 milliseconds.
Как проходил переход
GitHub переходила на Rust поэтапно: небольшие части кода на TypeScript заменяли версиями на Rust, а временный слой совместимости обеспечивал взаимодействие двух языков. Благодаря этому существующий набор тестов продолжал работать все 14.5 weeks проекта. За время перехода выпустили 128 pull requests и 135 релизов (35 стабильных и 100 предварительных).
Что это значит для разработчиков
Новую среду выполнения на Rust можно напрямую встраивать в приложения через C ABI — отдельный процесс Node.js с его примерно 100 MB памяти больше не нужен. Для случаев, когда требуется изоляция, по-прежнему доступен режим работы в отдельном процессе. Copilot SDK поддерживает TypeScript, Python, Go, .NET, Java и теперь Rust.
Почему это важно
Для разработчиков, использующих Copilot, более быстрый запуск означает меньше ожидания и более плавную работу. Снижение потребления памяти делает инструмент удобнее для компьютеров с ограниченными ресурсами и CI-конвейеров. Возможность напрямую встраивать среду выполнения также упрощает создание тесных интеграций для пользовательских расширений IDE.