# 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.