Yarn is compatible with the npm registry, but differs in its approach to installing packages; it uses lockfiles and a deterministic installation algorithm.
This allows it to maintain the same structure of node_modules directories – which house dependencies – for all users involved in a project, and help reduce bugs that are difficult to trace and replicate on multiple machines.
Yarn also aims to ensure quicker and more reliable installs by caching every package it downloads and by parallelizing operations. It also allows for installing packages without an internet connection, provided you’ve installed them at least once before.
In addition, Yarn promises compatibility with both npm and Bower workflows, and lets you restrict licenses of installed modules.
The team at npm noted in a blog post that it’s happy to welcome Yarn into the fold of open source npm clients. It added that Yarn “seems to work great with public packages,” but it doesn’t yet work with private packages; the developers behind Yarn are working to fix the issue.