Libsolv solves package dependencies using a satisfiability approach. This library efficiently stores and retrieves package information and employs SAT solving to determine resolvable dependency chains. It supports a variety of package formats, including RPM, DEB, and Arch Linux, and repository formats like RPMMD and SUSE product formats.
Libsolv distinguishes itself through its SAT-based solver, designed for recent packages and providing decision tree introspection. Its repository storage approach minimizes memory usage, enhancing efficiency. Support for a wide array of package and repository formats further broadens its applicability.
- Package Format Support: RPM, DEB, Arch Linux, Haiku, and APK.
- Repository Format Support: RPMMD, SUSE product formats, Mandriva/Mageia, Arch Linux, Red Carpet Helix, Haiku, and APK.
- SAT Solver: Employs a satisfiability algorithm for dependency resolution.
- Memory Efficiency: Minimizes memory usage through repository storage.
- Introspection: Records the decision tree for detailed dependency analysis.
Libsolv is an established library with a history dating back to 2011, indicated by its created date. Recent commits (as of 2026) suggest ongoing maintenance. The project's clear documentation and relatively active community indicate a reasonably stable and reliable codebase.
Libsolv benefits developers needing robust package dependency resolution in C. It's valuable for package managers, build systems, and any application requiring reliable dependency analysis. Compared to manual dependency checks, it offers automation and correctness, while avoiding the complexity of writing custom dependency resolution logic.
