Skip to content
This repository has been archived by the owner on Sep 28, 2022. It is now read-only.

Can parts of guppy be extracted and reused to analyze dependency graphs in other contexts? #133

Open
sunshowers opened this issue May 25, 2020 · 0 comments

Comments

@sunshowers
Copy link
Contributor

sunshowers commented May 25, 2020

guppy seems to really consist of two separate layers:

  1. The core graph handling, which is based on top of petgraph and is independent of any Rust-specific details. This consists of things like:
  • petgraph_support
  • graph/query_core.rs and resolve_core.rs
  • sorted_set
  1. The code to build a graph, the APIs, Cargo dependency resolution etc. This is all Cargo-specific.

1 could probably be extracted into its own crate and used for other dependency graph and similar scenarios.

This is unlikely to be done by me, but I'd be happy to accept a PR that:

  • creates a guppy-core crate in this workspace with code that's independent of Rust
  • makes guppy-core publicly presentable -- everything documented, tested, etc.
  • makes guppy-core a private dependency of guppy. (A private dependency means that no types or APIs from guppy-core are exposed in guppy. This allows us to make breaking changes to guppy-core without needing to release a new guppy.)

If you'd like to do this, I'd recommend doing it in conjunction with trying to build something guppy-like -- the practical experience may lead to a better sense of what guppy-core should look like.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant