8000 post-1.0: create graph algorithms crate · Issue #2 · project-minigraf/minigraf-examples · GitHub
[go: up one dir, main page]

Skip to content

post-1.0: create graph algorithms crate #2

Closed

Description

@adityamukho

Roadmap source

ROADMAP.md: Phase 9.4 Ecosystem Libraries.

Work item

Create graph algorithms as a separate crate.

Acceptance criteria

  • Keep algorithms outside the Minigraf core crate.
  • Define a trait-based API (GraphView) for reading graph structure from Minigraf so algorithms are decoupled from the concrete database type.
  • Provide at least one load helper that populates the graph from a live Minigraf database (MinigrafGraph).
  • Start with BFS reachability (reachable) as the initial algorithm; additional algorithms belong in follow-up issues.
  • Document at the crate level why algorithms belong in the ecosystem crate rather than core.
  • All public load methods must document the node normalization behaviour: keyword values returned by Minigraf queries are converted to Value::Ref using a derived UUID; callers must use the values returned by the graph or by querying the database, not manually constructed keyword literals, when passing start nodes to traversal functions.
  • Declare all required uuid features explicitly in Cargo.toml (do not rely on transitive feature unification).
  • Include keywords and categories fields in Cargo.toml for crates.io discoverability.

Not in scope for this issue

Known constraints

  • MinigrafGraph loads the entire graph into memory at construction time. This is a deliberate simplification for the initial release.

Publication checklist

Before tagging a release of minigraf-algorithms:

  • Cargo.toml includes keywords, categories, license, repository, and description.
  • README.md covers the API surface and the two supported edge shapes.
  • All acceptance criteria above are met and tests pass.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

      0