This has increased productivity and more.
Aura, a package manager that extends the capabilities of the standard Pacman for the Arch Linux distribution, released in version 4.0.0. The project, launched in 2012, was initially aimed at working with the AUR (Arch User Repository), a repository where third-party developers host their packages. Now Aura can offer a set of functions that go beyond the AUR.
The new version marks a radical change in the project architecture: the code base has been completely rewritten from Haskell to Rust. This decision has not only increased productivity and simplified installation, but also made the project more attractive to new developers. Other benefits include an improved command line interface and a fourfold reduction in the executable file size.
Aura provides full backward compatibility with Pacman, supporting all its commands and options. In fact, Aura can be considered an extended version of Pacman. Additional AUR-related functions are called using the “-A” option, and snapshots and versions are handled using the “-B” and “-C” options, which do not conflict with Pacman options.
Additional features of Aura include tools for visualizing dependencies, working with snapshots of package sets (saving and restoring state), managing residual dependencies, and rolling back individual packages or the entire system to previous versions. New commands such as “check”, “conf”, “free”, “stats” and “deps” are also available for checking the integrity of the system, working with configuration, analyzing licenses, viewing statistics and parsing dependencies.
The new version includes the “aura deps” command, which is responsible for generating an image with a visual representation of dependencies. For example, to see which packages depend on gcc, you can run the command “aura deps gcc –reverse –optional –open”, and to view a list of packages that gcc depends on, you can run the command “aura deps gcc –limit=3 –open”.
To speed up package search and dependency resolution, Aura developers maintain their own server with package metadata. The transition to Rust also allowed using ready-made Rust bindings to the libalpm library, which is responsible for basic package management functions. The project code is open and distributed under the GPLv3 license.