Yarn è una soluzione Open Source per la gestione delle dipendenze e per il package management dedicato agli sviluppatori di applicazioni basate sul linguaggio JavaScript; nato come alternativa a gestori di package come npm, che è il riferimento di default per l'ambiente NodeJS, Yarn si propone in particolare per le sue caratteristiche incentrate sull'elevato livello di performance, sicurezza e affidabilità.
Si tratta di un package manager che si occupa di memorizzare in cache tutti i pacchetti che vengono scaricati, in modo che tale operazione non debba essere ripetuta quando si necessita delle medesima dipendenza; tutte le procedure vengono eseguite in parallelo per limitare quanto più possibile il consumo di risorse e, nello stesso tempo, massimizzarne l'efficienza. Le installazioni risulteranno quindi più veloci limitando le latenze.
La sicurezza viene garantita dall'utilizzo dei checksum per le verifiche di integrità sui package e ciascun pacchetto installato viene controllato prima che il suo codice venga eseguito; l'utilizzo di lockfile e l'adozione di un algoritmo deterministico in fase di installazione consentono di effettuare setup che funzioneranno esattamente nello stesso modo indipendentemente dal sistema di riferimento.
In sostanza, l'algoritmo di Yarn assicura che le stesse dipendenze verranno installate con la medesima procedura tra macchine differenti, indipendentemente dall'ordine di installazione, per questo motivo opera in modo "deterministico". Supportata una modalità offline grazie alla quale se un package è stato già installato prima potrà essere nuovamente installato senza la necessità di disporre di una connessione alla Rete.
Yarn è in grado di gestire efficacemente le richieste in coda e supporta i package npm e Bower. Tutte le richieste verranno ripetute in caso di malfunzionamenti, per cui un'interruzione non pregiudicherà in alcun modo l'installazione del pacchetto desiderato. I conflitti tra diverse versioni di una stessa dipendenza vengono risolti automaticamente, per evitare la creazione di inutili duplicati.
Via Yarn