Bunster è uno strumento open source pensato per convertire gli script shell in binari efficienti e standalone. In questo modo viene semplificata la distribuzione e facilitato il deploy su diverse piattaforme Unix, per ora le uniche supportate. A differenza di altre soluzioni che si limitano a racchiudere gli script all'interno di un binario, Bunster li compila direttamente in codice macchina nativo utilizzando il toolchain di Go. Caratteristica che permette di garantire prestazioni elevate e portabilità dell'output.
Bunster: cosa può fare e cosa farà
Bunster opera come un transpiler che ha il compito di converti gli script shell in codice sorgente Go (modalità shell-to-Go
). È inoltre possibile compilare quest'ultimo in un programma eseguibile.
Ad oggi il progetto può essere utilizzato esclusivamente per gli script bash ma vi è l'intenzione di estendere il supporto ad altre shell nelle prossime versioni. Oltre alle funzionalità standard della shell, Bunster punta poi ad introdurre ulteriori caratteristiche tra cui:
- un sistema di moduli che permetta di pubblicare ed utilizzare script sotto forma di librerie, questo per colmare una lacuna presente negli script shell tradizionali;
- l'embedding di asset statici per includere il contenuto dei file direttamente in una variabile al momento della compilazione;
- un blocco con password e scadenza per aggiungere un ulteriore livello di sicurezza offrendo la possibilità di impostare una data di scadenza per l'esecuzione del programma o di proteggerlo con una password;
- una libreria standard con cui fornire supporto nativo per i comandi utilizzati più di frequente in modo da eliminare la necessità di programmi esterni;
Un progetto in fase embrionale
È importante notare che Bunster è attualmente in una fase iniziale di sviluppo e non è ancora pronto per l'uso in produzione. Molte delle sue funzionalità sono ancora in fase di implementazione e il progetto segue il sistema di versioning SemVer per l'avvicendamento tra le varie release. Una volta raggiunta la versione stabile (v1.0.0) gli script bash saranno pienamente compatibili con Bunster e con tutte le funzionalità attese.