Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
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
loadmethods must document the node normalization behaviour: keyword values returned by Minigraf queries are converted toValue::Refusing 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
uuidfeatures explicitly inCargo.toml(do not rely on transitive feature unification). - Include
keywordsandcategoriesfields inCargo.tomlfor crates.io discoverability.
Not in scope for this issue
- Shortest-path, topological sort, or other traversal algorithms (tracked in post-1.0: add graph traversal algorithms to minigraf-algorithms #12).
- Streaming or lazy graph loading; the initial implementation loads the full graph into memory, which is acceptable for 0.1.0. Callers with large graphs can implement
GraphViewdirectly.
Known constraints
MinigrafGraphloads 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.tomlincludeskeywords,categories,license,repository, anddescription. -
README.mdcovers the API surface and the two supported edge shapes. - All acceptance criteria above are met and tests pass.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity