resolvelib
Resolve abstract dependencies into concrete ones
Install
resolvelib on PyPI
pip
pip install resolvelibuv
uv add resolvelibpoetry
poetry add resolvelibPackage facts
| License | ISC License (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 306 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: resolvelib-1.2.1-py3-none-any.whl
Keywords: dependency, resolution
About resolvelib
from the package's own PyPI description — quoted content, verbatim
========== ResolveLib ==========
ResolveLib at the highest level provides a Resolver class that includes
dependency resolution logic. You give it some things, and a little information
on how it should interact with them, and it will spit out a resolution result.
Intended Usage
::
import resolvelib
# Things I want to resolve.
requirements = [...]
# Implement logic so the resolver understands the requirement format.
class MyProvider:
...
provider = MyProvider()
reporter = resolvelib.BaseReporter()
# Create the (reusable) resolver.
resolver = resolvelib.Resolver(provider, reporter)
# Kick off the resolution process, and get the final result.
result = resolver.resolve(requirements)
The provider interface is specified in resolvelib.providers. You don't
need to inherit anything, however, only need to implement the right methods.
Terminology
The intention of this section is to unify the terms we use when talking about this code base, and packaging in general, to avoid confusion. Class and variable names in the code base should try to stick to terms defined here.
Things passed into...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
ResolveLib provides a generic dependency resolution engine that takes abstract requirements and a custom provider interface to produce a concrete, conflict-free set of candidates.
Installation is frictionless: the package is pure Python with no runtime dependencies, ships as a wheel, and maintains active development with a recent release cycle.
Licensed under the ISC License (permissive), allowing commercial and private use with minimal restrictions; suitable for most projects without licensing concerns.
Usage
import resolvelib
class MyProvider:
def identify(self, requirement_or_candidate): pass
def get_preference(self, *args): pass
def find_matches(self, requirements): pass
def is_satisfied_by(self, requirement, candidate): pass
def get_dependencies(self, candidate): pass
provider = MyProvider()
reporter = resolvelib.BaseReporter()
resolver = resolvelib.Resolver(provider, reporter)
result = resolver.resolve([]) # Pass your requirements
Requires Python 3.9 or later; you must implement the provider interface methods to make resolution work with your requirement format.
Verdict: ResolveLib is a lightweight, actively maintained, permissively licensed dependency resolver suitable for embedding in tools that need generic conflict resolution. Zero security vulnerabilities and no external dependencies make it a low-risk choice for projects needing programmatic dependency resolution logic.
Needs verification
- Whether the provider interface is stable across versions or subject to breaking changes
- Performance characteristics and scalability limits for large dependency graphs
- Real-world adoption rate beyond the top-1000 PyPI tier
Similar packages
permissive · top 1,000 on PyPI
pytest-runnerpermissive · top 1,000 on PyPI
pip-auditpermissive · top 1,000 on PyPI
Fakerpermissive · top 1,000 on PyPI
kiwisolverpermissive · top 1,000 on PyPI
jsonschema-pathpermissive · top 1,000 on PyPI
locketpermissive · top 1,000 on PyPI
libcstpermissive · top 1,000 on PyPI
dbt-extractorpermissive · top 1,000 on PyPI
tree-sitter-languagespermissive · top 1,000 on PyPI