- Blazingly fast Installs. Uses libgit2 directly rather than the git CLI.
- Runs in parallel. Uses rayon to run installs in parallel.
- Lockfile interface. "packages.json" contain all packages to be installed, with frontends being able to generate them. (No frontends yet)
- Cache old versions of lockfiles into a file. This allows for fast rollbacks, as we just look at the previous lockfile's output.
- Extremely fast rollbacks. Usually < 1 second as no resolvers are run.
- CLI to install and inspect packages.
TODO
- Local packages
- Frontends (Neovim frontend, CLI frontend, etc)
- Patches
- Uninstalling packages (Currently they are just deleted from the lockfile, but not from the filesystem)
- Luarocks support
- Lazy loading though Neovim frontend
- Installing/managing neovim versions through the CLI frontend
- Updating packages through the CLI frontend, incrementing the generation in the lockfile and installing e.g new commit of a branch
- Conventional commits; Detect breaking changes in installed packages and warn the user.
- Nvim pack spec support