# Rust e Open Source per la Sostenibilità Digitale > [! nota]- > Questo riassunto si basa su diverse sessioni relative a questo argomento. Riassume i contenuti più importanti e li inserisce in un contesto ecosociale. I testi si basano sulla trascrizione di audio/video e sulla trasformazione di testi generati dal contenuto e dai link di queste sessioni. ## Di cosa tratta questa traccia? Il percorso "Rust 12" a FOSDEM 2025 esplora come Rust, un linguaggio di programmazione moderno e sicuro, stia rivoluzionando lo sviluppo software open source in molteplici ambiti: dall’analisi di grandi grafi, alla gestione di database, fino all’ottimizzazione di sistemi e infrastrutture critiche. Le sessioni affrontano temi come la compressione e l’analisi efficiente dei dati, la scrittura di estensioni sicure per PostgreSQL, la modernizzazione della gestione dei pacchetti Linux, la robotica, e la programmazione di sistemi embedded per la transizione energetica. Vengono presentati strumenti pratici (librerie, framework, metodologie) che aiutano a creare software più affidabile, efficiente e sostenibile. Il focus non è solo tecnico: si riflette anche su come queste innovazioni possano supportare la trasformazione ecosociale, favorendo la trasparenza, la collaborazione, la riduzione dell’impatto ambientale e l’accessibilità delle tecnologie digitali. In sintesi, il percorso mostra come Rust e l’open source siano alleati fondamentali per progettare un futuro digitale più equo, sicuro e sostenibile. ## Sessioni **Analisi di grafi massivi su server personale con WebGraph** La sessione mostra come analizzare grandi reti (come social network o dati biologici) su server propri, grazie a WebGraph riscritto in Rust, offrendo prestazioni e sicurezza migliorate. Si illustrano tecniche di compressione e applicazioni pratiche per l’analisi di dati su larga scala. [Huge graph analysis on your own server with WebGra](Huge%20graph%20analysis%20on%20your%20own%20server%20with%20WebGra.md) **Augurs: toolkit per serie temporali in Rust** Augurs è una libreria Rust per l’analisi di serie temporali, con funzionalità di previsione, clustering e rilevamento anomalie, integrabile anche con Python e JavaScript. Si discutono sfide di porting e ottimizzazione degli algoritmi. [Augurs a time series toolkit for Rust_Augurs un to](Augurs%20a%20time%20series%20toolkit%20for%20Rust_Augurs%20un%20to.md) **Costruire un wattmetro esp-rs e un backend Rocket** Un caso pratico di sviluppo di un wattmetro economico per la ricarica di veicoli elettrici, usando Rust e Rocket. Si affrontano aspetti di accessibilità tecnologica, open source e impatto sociale. [Building a watt meter esp rs and a rocket backend](Building%20a%20wattmeter%20esprs%20and%20a%20rocket%20backend_Tr.md) **Abusare il reborrowing per un garbage collector efficiente** Si esplora come le peculiarità di Rust nella gestione della memoria possano essere sfruttate per creare garbage collector più sicuri ed efficienti, con esempi pratici e riflessioni su sicurezza e performance. [Abusing reborrowing for fun profit and a safepoint](Abusing%20reborrowing%20for%20fun%20profit%20and%20a%20safepoint.md) **Estetica terminale sul web con Rust** Viene illustrato come Rust e WebAssembly permettano di portare interfacce terminali moderne e leggere sul web, favorendo applicazioni efficienti e accessibili. [Bringing terminal aesthetics to the Web with Rust](Bringing%20terminal%20aesthetics%20to%20the%20Web%20with%20Rust%20.md) **Consigli e trucchi sui tipi in Rust** Sessione dedicata a tecniche avanzate del sistema di tipi di Rust per semplificare lo sviluppo di API robuste e accessibili, con esempi da Bevy e Divan. [Type tips and tricks](Type%20tips%20and%20tricks.md) **Scrivere estensioni PostgreSQL sicure in Rust** Guida pratica all’uso di Rust per estendere PostgreSQL, migliorando sicurezza, performance e facilità di sviluppo grazie al framework PGRX. [writing safe postgresql extensions in rust a pract](Scrivere%20estensioni%20PostgreSQL%20sicure%20in%20Rust%20una%20.md) **Come ho ottimizzato zbus del 95%** Ottimizzazione spinta di una libreria di comunicazione D-Bus in Rust, con introduzione al profiling e all’ottimizzazione del software open source. [How I optimized zbus by 95 percent](How%20I%20optimized%20zbus%20by%2095_Come%20ho%20ottimizzato%20zbu.md) **Lezioni dalla riscrittura di software di sistema in Rust** Esperienze e sfide nella riscrittura di software di sistema critico (ntpd, sudo, zlib) in Rust, con riflessioni su sicurezza, performance e comunità. [Lessons from rewriting systems software in Rust_In](Lessons%20from%20rewriting%20systems%20software%20in%20Rust.md) **Programmare ROS 2 con Rust** Workshop pratico su come usare Rust insieme a ROS 2 per applicazioni robotiche innovative, con focus su sicurezza e performance. [Programming ROS 2 con Rust](programmazione%20ros%202%20con%20ruggine.md) **Rustificazione del scheduler del kernel Linux in user space** Come Rust può essere usato per sperimentare e ottimizzare i pianificatori del kernel Linux, incrementando la flessibilità e l’efficienza dei sistemi operativi. [rust ifying the linux kernel scheduler in user spa](Rustificando%20il%20kernel%20Linux%20scheduler%20in%20user%20spa.md) **Ossidazione della gestione pacchetti di Arch Linux** Modernizzazione della gestione dei pacchetti Arch Linux con Rust, per maggiore sicurezza, interoperabilità e sostenibilità infrastrutturale. [Adventures in oxidizing Arch Linux Package Managem](Adventures%20in%20oxidizing%20Arch%20Linux%20Package%20Managem.md) ## Significato per una trasformazione ecosociale L’approccio presentato in questo percorso sostiene la transizione verso sistemi sostenibili, equi e collaborativi su più livelli: 1. Sostenibilità ambientale: L’ottimizzazione delle prestazioni, la riduzione del consumo di risorse e la progettazione di software più efficienti contribuiscono direttamente a diminuire l’impatto energetico delle infrastrutture digitali. Ad esempio, strumenti per l’analisi di dati massivi o la gestione di database più sicuri permettono di ottenere risultati migliori con meno energia. 2. Sicurezza e affidabilità: Rust, grazie alla sua gestione sicura della memoria, riduce i rischi di vulnerabilità e crash, rendendo le infrastrutture digitali più robuste e affidabili, fondamentali per servizi pubblici, sociali e ambientali. 3. Open source e collaborazione: Tutte le soluzioni presentate sono aperte e documentate, favorendo la trasparenza, la condivisione della conoscenza e la possibilità per comunità e designer di adattare e migliorare gli strumenti secondo i propri bisogni. 4. Accessibilità e inclusione: Progetti come la creazione di wattmetri economici o la modernizzazione della gestione dei pacchetti Linux puntano a rendere la tecnologia accessibile anche a chi ha meno risorse, riducendo il divario digitale e favorendo l’innovazione dal basso. 5. Etica e responsabilità: Le sessioni affrontano anche questioni come la trasparenza delle analisi, la gestione responsabile dei dati e la necessità di evitare bias nei sistemi predittivi, promuovendo uno sviluppo tecnologico che tenga conto delle conseguenze sociali e ambientali. ## Possibilità di applicazione 1. Analisi di reti sociali, ambientali o biologiche su larga scala: grazie a WebGraph in Rust, i designer possono mappare reti di comunità, dati ecologici o flussi energetici in modo efficiente e sostenibile. [Huge graph analysis on your own server with WebGra](Huge%20graph%20analysis%20on%20your%20own%20server%20with%20WebGra.md) 2. Monitoraggio e ottimizzazione dei consumi energetici domestici o comunitari: progetti open source come il wattmetro Rust+Rocket possono essere replicati o adattati per sistemi di autoconsumo o reti energetiche locali. [Building a watt meter esp rs and a rocket backend](Building%20a%20wattmeter%20esprs%20and%20a%20rocket%20backend_Tr.md) 3. Sviluppo di strumenti di data science accessibili e trasparenti: Augurs permette di analizzare dati temporali (ad es. clima, traffico, consumi) integrandosi con Python e JavaScript per visualizzazioni e decisioni partecipate. [Augurs a time series toolkit for Rust_Augurs un to](Augurs%20a%20time%20series%20toolkit%20for%20Rust_Augurs%20un%20to.md) 4. Creazione di database sicuri e privacy-by-design: grazie al framework PGRX, anche enti pubblici o ONG possono sviluppare estensioni PostgreSQL che garantiscono sicurezza dei dati e anonimizzazione. [writing safe postgresql extensions in rust a pract](Scrivere%20estensioni%20PostgreSQL%20sicure%20in%20Rust%20una%20.md) 5. Modernizzazione delle infrastrutture digitali: la riscrittura di strumenti critici (scheduler di kernel, sistemi di gestione pacchetti, software di sistema) in Rust consente di aumentare la resilienza e la sostenibilità dei servizi digitali pubblici o cooperativi. [rust ifying the linux kernel scheduler in user spa](Rustificando%20il%20kernel%20Linux%20scheduler%20in%20user%20spa.md) 6. Robotica open source per l’ecologia e il sociale: l’integrazione di Rust con ROS 2 permette di sviluppare robot sicuri e affidabili per agricoltura, monitoraggio ambientale o assistenza sociale. [Programming ROS 2 con Rust](programmazione%20ros%202%20con%20ruggine.md) 7. Interfacce utente leggere e accessibili: strumenti come Ratatui e Ratzila consentono di creare applicazioni web e terminali efficienti, utili per dashboard energetici, gestionali comunitari o servizi digitali a basso impatto. [Bringing terminal aesthetics to the Web with Rust](Bringing%20terminal%20aesthetics%20to%20the%20Web%20with%20Rust%20.md) ## Sfide e domande aperte Le principali sfide emerse includono: - Complessità tecnica: molte soluzioni richiedono competenze avanzate in Rust e nella gestione di sistemi complessi, rendendo necessaria la formazione e il supporto per comunità meno esperte. - Integrazione con infrastrutture esistenti: la sostituzione di strumenti legacy (in C, Bash, ecc.) con soluzioni Rust può incontrare resistenze e problemi di compatibilità, soprattutto in contesti dove la stabilità è critica. - Accessibilità e adozione: alcune tecnologie, come le interfacce terminali web o i database avanzati, possono risultare poco accessibili a utenti non tecnici; serve lavorare su usabilità, documentazione e formazione inclusiva. - Questioni etiche e sociali: l’utilizzo di algoritmi predittivi e l’analisi di grandi dati solleva interrogativi su privacy, trasparenza, bias e governance dei dati. È necessario sviluppare linee guida etiche e strumenti di audit. - Sostenibilità delle comunità open source: la manutenzione di progetti avanzati richiede tempo, risorse e collaborazione. Serve rafforzare le reti di supporto e la condivisione delle competenze. - Barriere politiche e culturali: la promozione di software libero e soluzioni sostenibili può scontrarsi con interessi commerciali o inerzia istituzionale; occorre advocacy e alleanze trasversali per favorire l’adozione.