skillfed

resolvelib

Resolve abstract dependencies into concrete ones

resolvelib Permissive license ISC License Active 166 v1.2.1 released

Install

resolvelib on PyPI

pip

pip install resolvelib

uv

uv add resolvelib

poetry

poetry add resolvelib

Package 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

Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: ISC License (ISCL)Operating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Software Development :: Libraries :: Python Modules

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
dependency resolution libraryabstract to concrete dependency resolverpackage dependency solvergeneric resolution algorithmconflict resolution dependenciesrequirement to candidate resolverdependency graph solver

Similar packages