
Due sviluppatori CPython hanno proposto di aggiungere il linguaggio di programmazione Rust al codice Python. Emma Smith e un suo collega hanno pubblicato una proposta preliminare di miglioramento di Python (Pre-PEP) che giustifica la necessità di questo passaggio. Attualmente, Rust è previsto per essere utilizzato solo per la scrittura di moduli di estensione opzionali, ma in futuro potrebbe diventare una dipendenza obbligatoria.
Il motivo principale per l’adozione di Rust è migliorare la sicurezza della memoria. Il linguaggio previene intere classi di errori a livello di compilazione: accessi fuori dai limiti degli array, accessi alla memoria liberata e conflitti di dati nel codice multithread.
Questo è particolarmente rilevante per Python, che utilizza thread liberi, dove la sicurezza dei thread è fondamentale. Il progetto RustBelt ha persino dimostrato formalmente la correttezza delle garanzie di sicurezza di Rust per il codice privo di costrutti non sicuri.
Avvio delle iscrizioni al corso Cyber Offensive Fundamentals Vuoi smettere di guardare tutorial e iniziare a capire davvero come funziona la sicurezza informatica? La base della sicurezza informatica, al di là di norme e tecnologie, ha sempre un unico obiettivo: fermare gli attacchi dei criminali informatici. Pertanto "Pensa come un attaccante, agisci come un difensore". Ti porteremo nel mondo dell'ethical hacking e del penetration test come nessuno ha mai fatto prima. Per informazioni potete accedere alla pagina del corso oppure contattarci tramite WhatsApp al numero 379 163 8765 oppure scrivendoci alla casella di posta [email protected].
Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì. |
CPython riscontra regolarmente bug dovuti a una gestione impropria della memoria. Gli autori della proposta ritengono che Rust ridurrà radicalmente tali problemi. Anche se una parte del codice dovesse rimanere non sicura a causa delle interazioni con l’API C, la logica di base dei moduli sarà scritta in Rust, un linguaggio sicuro.
Rust è già attivamente utilizzato da grandi progetti C e C++. Il kernel Linux , Android , Firefox e molti altri sistemi stanno adottando il linguaggio per migliorarne l’affidabilità.
Google ha già segnalato risultati positivi dall’implementazione di Rust in Android. È interessante notare che dal 25% al 33% delle nuove estensioni Python sono scritte in Rust: l’integrazione del linguaggio in CPython potrebbe ulteriormente stimolare questa tendenza.
Oltre alla sicurezza, Rust offre strutture dati ad alte prestazioni provenienti dalla libreria standard . Vettori, tabelle hash e mutex sono tutti implementati con zero overhead e sono ben documentati.
Il sistema di macro di Rust è superiore alle macro del C: le macro dichiarative sono più pulite e non catturano accidentalmente le variabili, mentre le macro procedurali consentono potenti trasformazioni del codice. La libreria PyO3 fa ampio uso di macro procedurali per semplificare l’utilizzo dell’API Python.
Gli sviluppatori hanno già creato un prototipo di modulo _base64che dimostra i miglioramenti delle prestazioni ottenuti utilizzando Rust.
L’integrazione richiederà un nuovo crate cpython-syscon definizioni API C FFI. I binding vengono generati utilizzando bindgen, lo strumento ufficiale di Rust utilizzato anche nei progetti Linux e Android. Cargo può fornire dipendenze pronte all’uso, quindi non è necessario scaricare i pacchetti durante la compilazione.
Rust supporta tutte le piattaforme specificate in PEP 11 e successive. Tutte le piattaforme Python di livello 1 corrispondono alle piattaforme Rust di livello 1 o 2, con un set completo di strumenti di sviluppo. La compilazione incrociata è facile da configurare: basta impostare la destinazione desiderata e specificare il linker.
Gli autori hanno abbandonato l’idea di utilizzare la libreria PyO3 esistente all’interno di CPython. Ciò avrebbe creato un ulteriore livello di astrazione e rallentato lo sviluppo: ogni nuova API sarebbe stata prima aggiunta a PyO3, quindi aggiornata in CPython. Con bindgen, le nuove API sono disponibili automaticamente.
C’è un problema di dipendenza: il compilatore Rust usa Python per il bootstrap. Ma ci sono soluzioni. È possibile compilare una versione precedente di Python, poi Rust, quindi il nuovo CPython. Gli script di bootstrap di Rust sono persino compatibili con Python 2, quindi il problema è risolvibile. Le alternative sono usare PyPy o fare in modo che Rust si dissoci da Python durante il processo di compilazione.
Sono disponibili risorse di formazione per gli attuali sviluppatori CPython. Il Rust Book offre un’introduzione completa al linguaggio, oltre a Rust per programmatori C++ e materiali di formazione ufficiali.
Sono in corso i piani per creare un team di esperti Rust e aggiungere un tutorial alla devguide. Lavorare con gli argomenti delle funzioni potrebbe richiedere l’adattamento di Argument Clinic o la creazione di una macro procedurale in Rust.
Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

CulturaLinus Torvalds, il creatore di Linux, ha espresso una posizione ferma e senza mezze misure riguardo al dibattito sull’integrazione e l’uso di strumenti di intelligenza artificiale nella scrittura e revisione del codice del kernel di…
CybercrimeNel mondo di oggi la tecnologia non è più un mero strumento di efficienza o comodità, ma una leva geopolitica di primaria importanza. L’accesso a infrastrutture digitali, piattaforme cloud e sistemi di comunicazione non è…
CybercrimeImmaginate una situazione in cui Internet sembra funzionare, ma i siti web non si aprono oltre la prima schermata, le app di messaggistica sono intermittenti e le aziende sono in continuo cambiamento. Secondo gli autori…
CulturaRecentemente, una bobina di nastro magnetico è rimasta in un normale armadio universitario per mezzo secolo, e ora è improvvisamente diventata una scoperta di “archeologia informatica del secolo“. Un nastro con la scritta “UNIX Original…
CybercrimeUn massiccio archivio digitale contenente le informazioni private di circa 17,5 milioni di utenti Instagram sembrerebbe essere finito nelle mani dei cybercriminali. Qualche ora fa è stato segnalato l’allarme dopo che diversi utenti su Reddit…