petgraph
Graph data structure library. Provides graph types and graph algorithms.
0.8.3
476M downloads/mo
#247 most downloaded on crates.io
petgraph/petgraph
What this package is like to depend on
Last release 10 months ago
30 Sep 2025
Ships fairly regularly
a new release about every 6 months
Most releases are documented
notes for 56 of 73 stable releases
1 version withdrawn
withdrawn after publishing
12 years old
78 releases · first in 2015
1 release in the last 12 months
see the full history below
Release timeline
78 releases · Jan 2015 to Sep 2025Releases
latest 60 of 78-
0.8.330 Sep 2025Release notes
Open source →Bug Fixes
- Infinite
subgraph_isomorphisms_iterfor empty isomorphisms (#780) - Algos don't work on
UndirectedAdaptor(#870) (#871) - use a queue for SPFA (#893)
StableGraph::reversebreaks free lists (#890)
Documentation
- Fix examples link in README and unify typesetting of one word (#823)
- Add link to multigraph definition to isomorphism algos (#824)
- Fix auxiliary space (and time) complexity of bron-kerbosch (#825)
- Fix Typo in Operator Module Documentation (#831)
- Sync the crate feature flags in the README and docs (#832)
- Remove all [Generic] tags from algo docstrings (#835)
- Fix typos in comments (#836)
- Revamp CONTRIBUTING.md (#833)
- Update
GraphMaplink in README (#857) - Add doc comment for
Dot::with_attr_getters(#850) - Specify iteration order for neighbors and edges and their variants (#790)
- Collection of Doc fixes (#856)
New Features
- Add
into_nodes_edges_iterstoStableGraph(#841) - Add methods to reserve & shrink
StableGraphcapacity (#846) - Add Dinic's Maximum Flow Algorithm (#739)
- make Csr::from_sorted_edges generic over edge type and properly increase edge_count in Csr::from_sorted_edges (#861)
- Add
map_ownedandfilter_map_ownedforGraphandStableGraph(#863) - Add dijkstra::with_dynamic_goal (#855)
- Fix self-loop bug in all_simple_paths and enable multiple targets (#865)
- mark petgraph::dot::Dot::graph_fmt as public (#866)
- Add bidirectional Dijkstra algorithm (#782)
Performance
- Make A* tie break on lower h-values (#882)
Refactor
- add examples for scc algorithms and reorganize into dedicated module (#830)
- Remove unnecessary trait bounds from impls/methods (#828)
- replace uses of 'crate::util::zip' with 'core::iter::zip' (#849)
- Fix clippy (and other) lints (#851)
- Cleanup repo (#854)
- replace crate::util::enumerate with Iterator::enumerate (#881)
Testing
Release notes
Open source →Bug Fixes
- Infinite
subgraph_isomorphisms_iterfor empty isomorphisms (#780) - Algos don't work on
UndirectedAdaptor(#870) (#871) - use a queue for SPFA (#893)
StableGraph::reversebreaks free lists (#890)
Documentation
- Fix examples link in README and unify typesetting of one word (#823)
- Add link to multigraph definition to isomorphism algos (#824)
- Fix auxiliary space (and time) complexity of bron-kerbosch (#825)
- Fix Typo in Operator Module Documentation (#831)
- Sync the crate feature flags in the README and docs (#832)
- Remove all [Generic] tags from algo docstrings (#835)
- Fix typos in comments (#836)
- Revamp CONTRIBUTING.md (#833)
- Update
GraphMaplink in README (#857) - Add doc comment for
Dot::with_attr_getters(#850) - Specify iteration order for neighbors and edges and their variants (#790)
- Collection of Doc fixes (#856)
New Features
- Add
into_nodes_edges_iterstoStableGraph(#841) - Add methods to reserve & shrink
StableGraphcapacity (#846) - Add Dinic's Maximum Flow Algorithm (#739)
- make Csr::from_sorted_edges generic over edge type and properly increase edge_count in Csr::from_sorted_edges (#861)
- Add
map_ownedandfilter_map_ownedforGraphandStableGraph(#863) - Add dijkstra::with_dynamic_goal (#855)
- Fix self-loop bug in all_simple_paths and enable multiple targets (#865)
- mark petgraph::dot::Dot::graph_fmt as public (#866)
- Add bidirectional Dijkstra algorithm (#782)
Performance
- Make A* tie break on lower h-values (#882)
Refactor
- add examples for scc algorithms and reorganize into dedicated module (#830)
- Remove unnecessary trait bounds from impls/methods (#828)
- replace uses of 'crate::util::zip' with 'core::iter::zip' (#849)
- Fix clippy (and other) lints (#851)
- Cleanup repo (#854)
- replace crate::util::enumerate with Iterator::enumerate (#881)
Testing
- Infinite
-
0.8.206 Jun 2025Release notes
Open source →This minor release fixes several bugs, adds two new algorithms, slightly improves the performance of
maximum_matching,
adds a tool for parsing graphs from Dot/Graphviz files, and improves the documentation, making it more complete and uniform, as well as clarifying several points.Bug Fixes
- Ford Fulkerson sometimes Panics on StableGraphs (#793)
- Run Maximal Cliques Quickcheck only on Digraphs which are symmetrical (#800)
- Run Steiner Tree Quickcheck on the connected components to properly support disconnected graphs (#801)
- Quickcheck random01 function only outputs 0 (#798)
Documentation
- Specify that Acyclic::try_udpate_edge may add an edge (#770)
- Update remove_node doc comment in graphmap.rs (#663)
- Add examples to minimum spanning tree functions (#808)
- Minimal typo fix in comments (#803)
- Update docs.rs (#807)
- Add note about
StableGraph::edge_indicesbehaviour (#812) - Clarification of references to nodes and V (refresh #358) (#814)
- Fix link and mention Dfs and Bfs as special case in examples (#816)
- Unify algo docs (#815)
New Features
- (parser) allow parsing graphs from Dot/Graphviz files (#653)
- Implement
DataMapforGraphMapgraphs (#776) - Add Johnson's algorithm (#741)
- Add algorithm to find bridge edges (#590)
Performance
- Reuse queue allocation in
maximum_matchingmain loop (#817)
Refactor
- Fix new clippy warnings (#791)
Contributors
Release notes
Open source →This minor release fixes several bugs, adds two new algorithms, slightly improves the performance of
maximum_matching, adds a tool for parsing graphs from Dot/Graphviz files, and improves the documentation, making it more complete and uniform, as well as clarifying several points.Bug Fixes
- Ford Fulkerson sometimes Panics on StableGraphs (#793)
- Run Maximal Cliques Quickcheck only on Digraphs which are symmetrical (#800)
- Run Steiner Tree Quickcheck on the connected components to properly support disconnected graphs (#801)
- Quickcheck random01 function only outputs 0 (#798)
Documentation
- Specify that Acyclic::try_udpate_edge may add an edge (#770)
- Update remove_node doc comment in graphmap.rs (#663)
- Add examples to minimum spanning tree functions (#808)
- Minimal typo fix in comments (#803)
- Update docs.rs (#807)
- Add note about
StableGraph::edge_indicesbehaviour (#812) - Clarification of references to nodes and V (refresh #358) (#814)
- Fix link and mention Dfs and Bfs as special case in examples (#816)
- Unify algo docs (#815)
New Features
- (parser) allow parsing graphs from Dot/Graphviz files (#653)
- Implement
DataMapforGraphMapgraphs (#776) - Add Johnson's algorithm (#741)
- Add algorithm to find bridge edges (#590)
Performance
- Reuse queue allocation in
maximum_matchingmain loop (#817)
Refactor
- Fix new clippy warnings (#791)
-
0.8.107 Apr 2025Release notes
Open source →This patch release re-adds a missing
VisitMapimplementation that was dropped in the0.8.0release,
improves error messaging in panicking functions, and adds capacity management methods toUnionFind.Bug Fixes
- Bring back
VisitMapimpl for stdHashSet(#764)
New Features
Contributors
Release notes
Open source →This patch release re-adds a missing
VisitMapimplementation that was dropped in the0.8.0release, improves error messaging in panicking functions, and adds capacity management methods toUnionFind.Bug Fixes
- Bring back
VisitMapimpl for stdHashSet(#764)
New Features
- Bring back
-
0.8.005 Apr 2025Release notes
Open source →Breaking changes
- Add
no_stdSupport (#747) - Add
VisitMap::unvisitas proposed in #610 (#611) - Add support for specifying rankdir on dot plots. (#728)
- Make
dot::Confignon_exhaustive (#756) - Add
from_f32/64methods forFloat,Unit, andBoundedmeasures (#733)
New algorithms
- Add articulation points implementation (#681)
- Add Prim's Algorithm for Minimum Spanning Tree (#625)
- Add Kou's algorithm for finding a MST (#682)
- Add Bron-Kerbosch algorithm for maximal cliques (#662)
- Add Shortest Path Faster Algorithm Implementation (#686)
New features
- Add
UnionFind::new_set(#684) - Implement
Csr::try_add_edge(#719) - Add checked
UnionFindmethods (#730) - Add
MatrixGraphmethods with recoverable errors (#720) - Add methods with recoverable errors for
GraphandStableGraph(#718)
CI & fixes
- Fix all clippy lints and check them on CI (#726)
- Pin once_cell version for MSRV builds (#750)
- Require conventional commits tag in PR titles (#734)
- Fix wrong trigger for pr-title check (#751)
- Solve clippy warnings (#749)
- Fix github token in pr-title action (#752)
- Add new triggers for semver-checks (#754)
Documentation
- Add some missed features into crate-lvl doc (#758)
Release notes
Open source →Breaking changes
- Add
no_stdSupport (#747) - Add
VisitMap::unvisitas proposed in #610 (#611) - Add support for specifying rankdir on dot plots. (#728)
- Make
dot::Confignon_exhaustive (#756) - Add
from_f32/64methods forFloat,Unit, andBoundedmeasures (#733)
New algorithms
- Add articulation points implementation (#681)
- Add Prim's Algorithm for Minimum Spanning Tree (#625)
- Add Kou's algorithm for finding a MST (#682)
- Add Bron-Kerbosch algorithm for maximal cliques (#662)
- Add Shortest Path Faster Algorithm Implementation (#686)
New features
- Add
UnionFind::new_set(#684) - Implement
Csr::try_add_edge(#719) - Add checked
UnionFindmethods (#730) - Add
MatrixGraphmethods with recoverable errors (#720) - Add methods with recoverable errors for
GraphandStableGraph(#718)
CI & fixes
- Fix all clippy lints and check them on CI (#726)
- Pin once_cell version for MSRV builds (#750)
- Require conventional commits tag in PR titles (#734)
- Fix wrong trigger for pr-title check (#751)
- Solve clippy warnings (#749)
- Fix github token in pr-title action (#752)
- Add new triggers for semver-checks (#754)
Documentation
- Add some missed features into crate-lvl doc (#758)
- Add
-
0.7.108 Jan 2025Release notes
Open source → -
0.7.031 Dec 2024Release notes
Open source →- Re-released version 0.6.6 with the correct version number, as it included a major update to an exposed crate (#664).
-
0.6.630 Dec 2024 withdrawnRelease notes
Open source →- Add graph6 format encoder and decoder (#658)
- Dynamic Topological Sort algorithm support (#675)
- Add
UndirectedAdaptor(#695) - Add
LowerHexandUpperHeximplementations forDot(#687) - Make
serdesupport more complete (#550) - Process multiple edges in the Floyd-Warshall implementation (#685)
- Update
fixedbitsetto 0.5.7 (#664) - Fix
immediately_dominated_byfunction called on root of graph returns root itself (#670) - Fix adjacency matrix for
CsrandList(#648) - Fix clippy warnings (#701)
- Add performance note to the
all_simple_pathsfunction documentation (#693)
-
0.6.508 May 2024Release notes
Open source →- Add rayon support for
GraphMap(#573, #615) - Add
Topo::with_initialsmethod (#585) - Add logo to the project (#598)
- Add Ford-Fulkerson algorithm (#640)
- Update
itertoolsto 0.12.1 (#628) - Update
GraphMapto allow custom hash functions (#622) - Fix documentation (#630)
- Fix clippy warnings (#627)
- (internal) Fix remove old
copyclonemacro (#601) - (internal) Move minimum spanning tree into own module (#624)
- Add rayon support for
-
0.6.421 Aug 2023 -
0.6.307 Feb 2023Release notes
Open source →- Added an iterator over subgraph isomorphisms (#500)
- Added serde support on
GraphMap(#496) - Added
reversemethod forStableGraph(#533) - Added
edges_connectingiterator forStableGraph(#521) - Fix Floyd-Warshall algorithm behaviour on undirected graphs (
487_) - Fix IntoEdgesDirected implementation for NodeFiltered when direction is Incoming (
476_) - Fix cardinality check in subgraph isomorphism (
472_) - Fix UB in
MatrixGraph(#505)
-
0.6.228 May 2022Release notes
Open source →- Loosed the strict version dependency set in
493, to allow users to use newer versions of indexmap (495).
- Loosed the strict version dependency set in
-
0.6.122 May 2022Release notes
Open source →- Added clarifications on Graph docs (
491_). - Fix build errors on rust 1.41 (
493_).
- Added clarifications on Graph docs (
-
0.6.004 Jul 2021Release notes
Open source →Breaking changes
- MSRV is now 1.41 (#444).
- Removed the
NodeCompactIndexabletrait impl forMatrixGraph(#429). - The
IntoEdges::edgesimplementations are now required return edges with the passed node as source (#433).
New features
- Multiple documentation improvements (#360, #383, #426, #433, #437, #443, #450).
- Added an
immediately_dominated_bymethod to the dominators result (#337). - Added
adj::List, a new append-only graph type using a simple adjacency list with no node-weights (#263). - Added
dag_to_toposorted_adjacency_listanddag_transitive_reduction_closurealgorithms to transitively reduce an acyclic graph (#263). - Made the
is_isomorphicalgorithm generic on both graph types (#369). - Implement Debug and Clone for all the iterators (#418).
- Implement multiple mising traits on graph implementations and adapters (#405, #429).
- Add an EdgeIndexable public trait (#402).
- Added immutable
node_weightsandedge_weightsmethods forGraphandStableGraph(#363).
New algorithms
- Added a k-shortest-path implementation (#328).
- Added a generic graph complement implementation (#371).
- Added a maximum matching implementation (#400).
- Added a Floyd-Warshall shortest path algorithm (#377).
- Added a greedy feedback arc set algorithm (#386).
- Added a
find_negative_cyclealgorithm (#434).
Performance
- Reuse the internal state in
tarjan_scc(#313) - Reduce memory usage in
tarjan_scc(#413). - Added tighter size hints to all iterators (#380).
- Optimized
petgraph::dota bit (#424). - Optimized StableGraph de-serialization with holes (#395).
Bug fixes
- Fixed A* not producing optimal solutions with inconsistent heuristics (#379).
- Fixed a stacked borrow violation (#404).
- Fixed a panic in
StableGraph::extend_with_edges(#415). - Fixed multiple bugs in the matrix graph implementation (#427).
- Fixed
GraphMap::remove_nodenot removing some edges (#432). - Fixed all clippy warnings (#440, #449).
Other changes
-
0.5.123 May 2020Release notes
Open source →- Implement
Defaultfor traversals. - Export
EdgesConnectingpublicly. - Implement
is_bipartite_graph. - Add
FilterNodeimplementation forFixedBitSetandHashSet. - Implement
node_weights_mutandedge_weights_mutforStableGraph. - Add configurable functions for adding attributes to dotfile features.
- Implement
-
0.5.025 Dec 2019Release notes
Open source →Breaking changes
- The iterative DFS implementation,
Dfs, now marks nodes visited when they are pushed onto the stack, not when they're popped off. This may require changes to callers that useDfs::from_partsor manipulate its internals. - The
IntoEdgesDirectedtrait now has a stricter contract for undirected graphs. Custom implementations of this trait may have to be updated. See thetrait documentation__ for more.
Other changes
- Upgrade to Rust 2018 edition
- Fix clippy warnings and unify code formatting
- Improved and enhanced documentation
- Update dependencies including modern quickcheck
- Numerous bugfixes and refactorings
- Added
MatrixGraphimplementation
__ https://docs.rs/petgraph/0.5/petgraph/visit/trait.IntoEdgesDirected.html
- The iterative DFS implementation,
-
0.4.1326 Aug 2018Release notes
Open source →- Fix clippy warnings by @jonasbb
- Add docs for
Csrby @ksadorf - Fix conflict with new stable method
find_mapin new Rust
-
0.4.1226 Mar 2018 -
0.4.1107 Jan 2018Release notes
Open source →- Fix
petgraph::graph::NodeReferencesto be publicly visible - Small doc typo and code style files by @shepmaster and @waywardmonkeys
- Fix a future compat warning with pointer casts
- Fix
-
0.4.1015 Oct 2017 -
0.4.902 Oct 2017Release notes
Open source →- Fix
bellman_fordto work correctly with undirected graphs (#152) by @carrutstick - Performance improvements for
Graph, Stablegraph's.map().
- Fix
-
0.4.820 Sep 2017Release notes
Open source →-
StableGraphlearned new methods nearing parity withGraph. Note that theStableGraphmethods preserve index stability even in the batch removal methods likefilter_mapandretain_edges.- Added
.filter_map(), which maps associated node and edge data - Added
.retain_edges(),.edge_indices()and.clear_edges()
- Added
-
Existing
Graphiterators gained some trait impls:.node_indices(), .edge_indices()areExactSizeIterator.node_references()is nowDoubleEndedIterator + ExactSizeIterator..edge_references()is nowExactSizeIterator.
-
Implemented
From<StableGraph>forGraph.
-
-
0.4.716 Sep 2017Release notes
Open source →- New algorithm by @jmcomets: A* search algorithm in
petgraph::algo::astar - One
StableGraphbug fix whose patch was supposed to be in the previous version:add_edge(m, n, _)now properly always panics if nodes m or n don't exist in the graph.
- New algorithm by @jmcomets: A* search algorithm in
-
0.4.612 Sep 2017Release notes
Open source →-
New optional crate feature:
"serde-1", which enables serialization forGraphandStableGraphusing serde. -
Add methods
new,add_nodetoCsrby @jmcomets -
Add indexing with
[]by node index,NodeCompactIndexableforCsrby @jmcomets -
Amend doc for
GraphMap::into_graph(it has a case where it can panic) -
Add implementation of
From<Graph>forStableGraph. -
Add implementation of
IntoNodeReferencesfor&StableGraph. -
Add method
StableGraph::mapthat maps associated data -
Add method
StableGraph::find_edge_undirected -
Many
StableGraphbug fixes involving node vacancies (holes left by deletions):neighbors(n)and similar neighbor and edge iterator methods now handle n being a vacancy properly. (This produces an empty iterator.)find_edge(m, n)now handles m being a vacancy correctly tooStableGraph::node_boundwas fixed for empty graphs and returns 0
-
Add implementation of
DoubleEndedIteratortoGraph, StableGraph's edge references iterators. -
Debug output for
Graphnow shows node and edge count.Graph, StableGraphshow nothing for the edges list if it's empty (no label). -
Arbitraryimplementation forStableGraphnow can produce graphs with vacancies (used by quickcheck)
-
-
0.4.516 Jun 2017 -
0.4.414 Mar 2017Release notes
Open source →- Add
GraphMap::all_edges_mut()iterator by @Binero - Add
StableGraph::retain_nodesby @Rupsbant - Add
StableGraph::index_twice_mutby @christolliday
- Add
-
0.4.321 Jan 2017 -
0.4.206 Jan 2017Release notes
Open source →- Move the
visit.rsfile due to changed rules for a module’s directory ownership in Rust, resolving a future compat warning. - The error types
Cycle, NegativeCyclenow implementPartialEq.
- Move the
-
0.4.126 Oct 2016Release notes
Open source →- Add new algorithm
simple_fastfor computing dominators in a control-flow graph.
- Add new algorithm
-
0.4.017 Oct 2016Release notes
Open source →Breaking changes in
GraphGraph::edgesand the other edges methods now return an iterator of edge references
Other breaking changes
toposortnow returns an error if the graph had a cycle.is_cyclic_directedno longer takes a dfs space argument. It is now recursive.sccwas renamed tokosaraju_scc.min_spanning_treenow returns an iterator that needs to be made into a specific graph type deliberately.dijkstranow uses theIntoEdgestrait.NodeIndexablechanged its method signatures.IntoExternalswas removed, and many other smaller adjustments in graph traits.NodeIdmust now implementPartialEq, for example.DfsIter, BfsIterwere removed in favour of a more general approach with theWalkertrait and its iterator conversion.
New features
- New graph traits, for example
IntoEdgeswhich returns an iterator of edge references. Everything implements the graph traits much more consistently. - Traits for associated data access and building graphs:
DataMap,Build, Create, FromElements. - Graph adaptors:
EdgeFiltered.Filteredwas renamed toNodeFiltered. - New algorithms: bellman-ford
- New graph: compressed sparse row (
Csr). GraphMapimplementsNodeIndexable.Dotwas generalized
-
0.3.211 Oct 2016Release notes
Open source →- Add
depth_first_search, a recursive dfs visitor that emits discovery, finishing and edge classification events.- Add graph adaptor
Filtered. - impl
Debug, NodeIndexableforReversed.
- Add graph adaptor
- Add
-
0.3.105 Oct 2016Release notes
Open source →- Add
.edges(), .edges_directed()toStableGraph. Note that these differ fromGraph, because this is the signature they will all use in the future. - Add
.update_edge()toStableGraph. - Add reexports of common items in
stable_graphmodule (for exampleNodeIndex). - Minor performance improvements to graph iteration
- Improved docs for
visitmodule.
- Add
-
0.3.003 Oct 2016Release notes
Open source →-
Overhaul all graph visitor traits so that they use the
IntoIteratorstyle. This makes them composable.- Multiple graph algorithms use new visitor traits.
- Help is welcome to port more algorithms (and create new graph traits in the process)!
-
GraphMapcan now have directed edges.GraphMap::newis now generic in the edge type.DiGraphMapandUnGraphMapare new type aliases. -
Add type aliases
DiGraph, UnGraph, StableDiGraph, StableUnGraph -
GraphMapis based on the indexmap crate. Deterministic iteration order, faster iteration, no side tables needed to convert toGraph. -
Improved docs for a lot of types and functions.
-
Add graph visitor
DfsPostOrder -
Dfsgained new methodsfrom_partsandreset. -
New algo
has_path_connecting. -
New algo
tarjan_scc, a second scc implementation. -
Document traversal order in
Dfs, DfsPostOrder, scc, tarjan_scc. -
Optional graph visitor workspace reuse in
has_path_connecting,is_cyclic_directed, toposort. -
Improved
Debugformatting forGraph, StableGraph. -
Add a prelude module
-
GraphMapnow has a method.into_graph()that makes aGraph. -
Graph::retain_nodes, retain_edgesnow expose the self graph only as wrapped inFrozen, so that weights can be mutated but the graph structure not. -
Enable
StableGraphby default -
Add method
Graph::contains_edge. -
Renamed
EdgeDirection→Direction. -
Remove
SubTopo. -
Require Rust 1.12 or later
-
-
0.3.0-alpha.302 Oct 2016 pre-releaseNothing published for this version
-
0.3.0-alpha.201 Oct 2016 pre-releaseNothing published for this version
-
0.3.0-alpha.101 Oct 2016 pre-releaseNothing published for this version
-
0.3.0-alpha.030 Sep 2016 pre-releaseNothing published for this version
-
0.2.1027 Jul 2017 -
0.2.901 Oct 2016 -
0.2.812 Sep 2016Release notes
Open source →- Add Graph methods reserve_nodes, reserve_edges, reserve_exact_nodes, reserve_exact_edges, shrink_to_fit_edges, shrink_to_fit_nodes, shrink_to_fit
-
0.2.722 Apr 2016 -
0.2.620 Apr 2016 -
0.2.510 Apr 2016Release notes
Open source →- Add SubTopo, a topo walker for the subgraph reachable from a starting point.
- Add condensation, which forms the graph of a graph’s strongly connected components.
-
0.2.404 Apr 2016Release notes
Open source →- Fix an algorithm error in scc (#61). This time we have a test that crosschecks the result of the algorithm vs another implementation, for greater confidence in its correctness.
-
0.2.322 Feb 2016Release notes
Open source →- Require Rust 1.6: Due to changes in how rust uses type parameter defaults.
- Implement Graph::clone_from.
-
0.2.214 Dec 2015Release notes
Open source →- Require Rust 1.5
Dotpasses on the alternate flag to node and edge label formatting- Add
Cloneimpl for some iterators - Document edge iteration order for
Graph::neighbors - Add experimental feature
StableGraph, using feature flagstable_graph
-
0.2.106 Dec 2015 -
0.2.003 Dec 2015Release notes
Open source →New Features
- Add Graph::neighbors().detach() to step edges without borrowing. This is more general than, and replaces now deprecated walk_edges_directed. (#39)
- Implement Default for Graph, GraphMap
- Add method EdgeDirection::opposite()
Breaking changes
- Graph::neighbors() for undirected graphs and Graph::neighbors_undirected for any graph now visit self loop edges once, not twice. (#31)
- Renamed Graph::without_edges to Graph::externals
- Removed Graph::edges_both
- GraphMap::add_edge now returns
Option<E> - Element type of
GraphMap<N, E>::all_edges()changed to(N, N, &E)
Minor breaking changes
- IntoWeightedEdge changed a type parameter to associated type
- IndexType is now an unsafe trait
- Removed IndexType::{one, zero}, use method new instead.
- Removed MinScored
- Ptr moved to the graphmap module.
- Directed, Undirected are now void enums.
- Fields of graphmap::Edges are now private (#19)
-
0.1.1830 Nov 2015 -
0.1.1725 Nov 2015Release notes
Open source →- Add Graph::capacity(), GraphMap::capacity()
- Fix bug in Graph::reverse()
- Graph and GraphMap have
quickcheck::Arbitraryimplementations, if optional featurecheckis enabled.
-
0.1.1625 Nov 2015Release notes
Open source →- Add Graph::node_indices(), Graph::edge_indices()
- Add Graph::retain_nodes(), Graph::retain_edges()
- Add Graph::extend_with_edges(), Graph::from_edges()
- Add functions petgraph::graph::{edge_index, node_index};
- Add GraphMap::extend(), GraphMap::from_edges()
- Add petgraph::dot::Dot for simple graphviz dot output
-
0.1.1520 Nov 2015Release notes
Open source →- Add Graph::clear_edges()
- Add Graph::edge_endpoints()
- Add Graph::map() and Graph::filter_map()
-
0.1.1419 Nov 2015Release notes
Open source →- Add new topological order visitor Topo
- New graph traits NeighborsDirected, Externals, Revisitable
-
0.1.1311 Nov 2015 -
0.1.1207 Nov 2015 -
0.1.1116 Aug 2015Release notes
Open source →- Update for well-formedness warnings (Rust RFC 1214), adding new lifetime bounds on NeighborIter and Dfs, impact should be minimal.
-
0.1.1022 Jun 2015 -
0.1.917 Jun 2015Release notes
Open source →- Fix Dfs/Bfs for a rustc bugfix that disallowed them
- Add method next_neighbor() to WalkEdges
-
0.1.808 Jun 2015 -
0.1.708 Jun 2015 -
0.1.604 Jun 2015