GitHub przenosi środowisko uruchomieniowe Copilot do języka Rust przy pomocy sztucznej inteligencji
12 października 2026 · Czas czytania: 2 min
Dostępne również w Nederlands, Türkçe, Italiano, Svenska, Português (Brasil)
GitHub przeprowadził migrację środowiska uruchomieniowego obsługującego aplikację Copilot, Copilot CLI oraz Copilot SDK z języków TypeScript i Node.js na język Rust. Proces ten polegał na zastąpieniu ponad 800 000 linii kodu produkcyjnego poprzez przepisanie go z pomocą sztucznej inteligencji.
Prace nad migracją trwały około 14,5 tygodnia i zostały zrealizowane za pomocą 128 żądań pull, podczas gdy GitHub nadal wydawał aktualizacje środowiska uruchomieniowego. Firma poinformowała, że czas startu klienta, tworzenia sesji oraz scenariusza pojedynczej tury spadł z 5,25 sekundy w poprzedniej wersji do 292 milisekund w przypadku osadzenia środowiska Rust w procesie.
Nowa implementacja zmieniła sposób integracji aplikacji ze środowiskiem uruchomieniowym. Wcześniejsza wersja wymagała Node.js oraz V8 i komunikowała się z aplikacjami hostującymi przez granicę procesu, co według GitHub dodawało około 100 MB do zbioru roboczego każdego klienta. Obecnie rozwiązanie w języku Rust może być osadzane bezpośrednio w aplikacjach hostujących poprzez C ABI, choć tryb poza procesem pozostaje dostępny. Copilot SDK wspiera obecnie języki TypeScript, Python, Go.NET, Java oraz Rust.
GitHub zastosował strategię stopniowego zastępowania zamiast równoległego przepisywania z jednym ostatecznym przełączeniem. Poszczególne komponenty TypeScript były zastępowane implementacjami w Rust, a oba systemy łączyła tymczasowa interoperacyjność N API. Pozwoliło to na wykorzystanie istniejących testów end to end do sprawdzania nowego kodu. W trakcie migracji wydano 135 wersji, w tym 35 stabilnych i 100 wersji przedpremierowych.
Warstwa kompatybilności osiągnęła 2 019 wewnętrznych eksportów N API oraz 3 356 miejsc wywołań TypeScript przed swoim usunięciem. Do 21 sierpnia środowisko uruchomieniowe zawierało 832 378 linii produkcyjnego kodu Rust oraz 468 689 linii testów jednostkowych w tym języku. Większość implementacji wygenerowały agenci sztucznej inteligencji, natomiast kompilacja, testowanie i ludzka recenzja pomogły zidentyfikować regresje dotyczące zachowania, obsługi stanu i czasu życia, semantyki bibliotek oraz utraconych optymalizacji. Odnotowano 4 478 bezpośrednich uruchomień cargo check, z czego 87,1% zakończyło się pomyślnie.