GitHub ha completato il passaggio a Rust del nucleo del suo strumento Copilot da riga di comando, dell’app desktop e dell’SDK, riscrivendolo da TypeScript/Node.js. La riscrittura ha sostituito circa 800.000 righe di codice di produzione ed è stata realizzata con l’aiuto di codice generato dall’IA. La modifica ha ridotto il tempo necessario per avviare un client Copilot da 5,25 secondi a 292 millisecondi, quando il runtime viene eseguito nello stesso processo.
Come è stata realizzata la migrazione
GitHub ha adottato un approccio graduale. Piccole parti di TypeScript sono state sostituite con versioni in Rust, mentre un livello di compatibilità temporaneo permetteva ai due linguaggi di comunicare. In questo modo, la suite di test esistente ha potuto continuare a funzionare durante le 14,5 settimane di lavoro. Nel corso della migrazione sono state pubblicate in totale 128 pull request e 135 release (35 stabili e 100 prerelease).
Cosa cambia per gli sviluppatori
Il nuovo runtime in Rust può essere integrato direttamente nelle applicazioni host tramite un’ABI C, eliminando la necessità di un processo Node.js separato e del relativo consumo di memoria, pari a circa 100 MB. È comunque disponibile una modalità out-of-process per i casi in cui serve l’isolamento. L’SDK di Copilot continua a supportare TypeScript, Python, Go, .NET, Java e ora anche Rust.
Perché conta
Per gli sviluppatori che usano Copilot, un avvio più rapido significa meno attese e flussi di lavoro più fluidi. Il minor consumo di memoria rende lo strumento più adatto ai computer con risorse limitate e alle pipeline CI. La possibilità di integrare direttamente il runtime consente inoltre integrazioni più strette con estensioni IDE personalizzate.