Introduzione ad Android Rust

La piattaforma Android fornisce supporto per lo sviluppo di componenti nativi del sistema operativo in Rust, un moderno linguaggio di programmazione di sistema che fornisce garanzie di sicurezza della memoria con prestazioni equivalenti a C/C++. Rust utilizza una combinazione di controlli in fase di compilazione che rafforzano la durata e la proprietà dell'oggetto e controlli di runtime che garantiscono accessi validi alla memoria, eliminando così la necessità di un garbage collector.

Rust fornisce una gamma di funzionalità del linguaggio moderno che consentono agli sviluppatori di essere più produttivi e sicuri del proprio codice:

  • Programmazione simultanea sicura - La facilità con cui ciò consente agli utenti di scrivere codice efficiente e thread-safe ha dato origine allo slogan Fearless Concurrency di Rust.
  • Sistema di tipi espressivi - Rust aiuta a prevenire bug di programmazione logica consentendo tipi altamente espressivi (come wrapper Newtype e varianti enum con contenuti).
  • Controlli più rigorosi in fase di compilazione : più bug rilevati in fase di compilazione aumentano la certezza degli sviluppatori che, quando il codice viene compilato correttamente, funziona come previsto.
  • Framework di test integrato - Rust fornisce un framework di test integrato in cui i test unitari possono essere posizionati insieme all'implementazione che testano, rendendo più semplice l'inclusione dei test unitari.
  • Applicazione della gestione degli errori : le funzioni con errori reversibili possono restituire un tipo di risultato , che sarà una variante di successo o una variante di errore. Il compilatore richiede ai chiamanti di verificare e gestire la variante di errore di un'enumerazione Result restituita da una chiamata di funzione. Ciò riduce il rischio di bug derivanti da errori non gestiti.
  • Inizializzazione - Rust richiede che ogni variabile venga inizializzata su un membro legale del suo tipo prima dell'uso, prevenendo un'inizializzazione involontaria su un valore non sicuro.
  • Gestione dei numeri interi più sicura : tutte le conversioni di tipo intero sono cast espliciti. Gli sviluppatori non possono eseguire accidentalmente il cast durante una chiamata di funzione durante l'assegnazione a una variabile o quando tentano di eseguire operazioni aritmetiche con altri tipi. Il controllo dell'overflow è attivo per impostazione predefinita in Android per Rust, il che richiede che le operazioni di overflow siano esplicite.

Per ulteriori informazioni, consultare la serie di post del blog sul supporto di Android Rust: