Skip to content

Expose apis that allow implementing your own solver loop #231

@konstin

Description

@konstin

In uv, we run our own solver loop (https://github.com/astral-sh/uv/blob/8596525d97e3e0d9b6981f7e122334bfc9f712c8/crates/uv-resolver/src/resolver/mod.rs#L317). This gives us async support, allows moving the solver into a thread, do advanced prefetching based on decisions, splitting resolutions on conflicting requirements for disjoint environments, etc.; overall we do it because we need that level of control with the complexity and performance requirements that uv has.

It would be great if pubgrub would expose a dedicated set of types and methods to allow users to implement their own solver loop if they so choose. This interface comes with caveats, most notably that you have to uphold pubgrub's invariants about the order of operations yourself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions