Release notes: https://www.rustworkx.org/release_notes.html#relnotes-0-18-0
What's Changed
- Fix pickling of graphs with contracted nodes by @d-miketa in #1505
- Fix
pyproject.tomland stop usingsetup.pyby @IvanIsCoding in #1494 - from_dot feature by @Krishn1412 in #1489
- BFS layers algorithm by @Krishn1412 in #1511
- New function greedy routing by @SILIZ4 in #1478
- Matrix Market support by @Krishn1412 in #1515
- Bump MSRV to Rust 1.85, Edition to 2024, and PyO3 to 0.26 by @IvanIsCoding in #1510
- Improve all simple paths multi-target performance by @lazyhope in #1520
- Fix dominance tests by @IvanIsCoding in #1524
- Add flags multigraph and selfloops to read_edge_list methods by @SILIZ4 in #1526
- Remove Python 3.9 support and the legacy
retworkximport by @IvanIsCoding in #1509 - enhancements: light dark mode support in docs by @dheerajnbhat in #1530
- Change broken link inside README by @Tamir198 in #1532
- Fix bug in
rustworkx.bridgesby @IvanIsCoding in #1535 - Officially support Python 3.14 by @IvanIsCoding in #1521
- Bump wheel from 0.45.1 to 0.46.2 by @dependabot[bot] in #1542
- Bump fonttools from 4.57.0 to 4.60.2 by @dependabot[bot] in #1541
- Bump filelock from 3.18.0 to 3.20.3 by @dependabot[bot] in #1538
- Bump urllib3 from 2.3.0 to 2.6.3 by @dependabot[bot] in #1537
- Bump virtualenv from 20.31.1 to 20.36.1 by @dependabot[bot] in #1539
- Bump requests from 2.32.3 to 2.32.4 by @dependabot[bot] in #1543
- Bump tornado from 6.4.2 to 6.5 by @dependabot[bot] in #1544
- add random walk sampling algorithm by @SILIZ4 in #1536
- Bugfix/json preserves node gaps by @d-miketa in #1517
- 1545: Make max weight matching deterministic for graphs with multiple correct solutions by @jberg5 in #1546
- Bump pillow from 11.1.0 to 12.1.1 by @dependabot[bot] in #1548
- Fix find_successor_node_by_edge by @jberg5 in #1551
- Split
hashbrowndependency between Python-space andrustworkx-coreby @jakelishman in #1552 - Remove The Hashmap from Shorted Path for Centrality Computation by @Paulo-21 in #1307
- Improve performance of dfs_edges by removing unnecessary clone by @jberg5 in #1557
- Bump lxml-html-clean from 0.4.1 to 0.4.4 by @dependabot[bot] in #1559
- Fix is_semi_connected panic on graphs with node gaps. by @jberg5 in #1561
- Bump tornado from 6.5 to 6.5.5 by @dependabot[bot] in #1564
- Add assertion-based matplotlib tests for mpl_draw by @Rachel-Eva in #1567
- Bump ruff from 0.14.3 to 0.15.7 by @dependabot[bot] in #1566
- Bump nbconvert from 6.5.4 to 7.17.0 by @dependabot[bot] in #1547
- Bump requests, uv, Rust deps by @dependabot[bot] in #1570
- Bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in #1572
- feat: implementation for group_degree_centrality, group_closeness_centrality, and group_betweenness_centrality by @selmanozleyen in #1565
- Bump pillow from 12.1.1 to 12.2.0 by @dependabot[bot] in #1574
- Bump uv from 0.11.2 to 0.11.6 by @dependabot[bot] in #1573
- Reuse inner allocation in collect_bicolor_runs by @mtreinish in #1578
- Bump lxml from 5.1.1 to 6.1.0 by @dependabot[bot] in #1582
- Add random regular graph generator to rustworkx by @lueckem in #1586
- Bump versions for Python and Rust lockfiles by @dependabot[bot] in #1585
- Add kamada_kawai_layout function by @wallies in #1583
- Bump dulwich from 1.2.1 to 1.2.5 by @dependabot[bot] in #1591
- Bump uv from 0.11.6 to 0.11.15 by @dependabot[bot] in #1592
- Migrate from
setuptools-rusttomaturinby @IvanIsCoding in #1527 - Add node_list option to adjacency_matrix by @techyangj in #1587
- perf: Use BufWriter when writing json by @DanielVoogsgerd in #1594
- Bump CI Clippy and rustfmt toolchain to Rust 1.96 by @spital in #1595
- Bump smallvec from 1.15.1 to 1.15.2 by @dependabot[bot] in #1601
- Bump tornado from 6.5.5 to 6.5.6 by @dependabot[bot] in #1596
- Avoid inner-loop allocations in
longest_pathby @jakelishman in #1577 - Use ubuntu-24.04-ppc64le and ubuntu-24.04-s390x runners for wheels.yml by @IvanIsCoding in #1555
- Bump hashbrown from 0.15.5 to 0.17.1 by @dependabot[bot] in #1598
- Bump PyO3 and rust-numpy to latest 0.29 release by @mtreinish in #1603
- Relax ndarray version for rustworkx-core by @mtreinish in #1602
- Add free-threaded Python to the CI by @IvanIsCoding in #1528
- Bump libfuzzer-sys from 0.4.12 to 0.4.13 by @dependabot[bot] in #1608
- Bump ndarray from 0.16.1 to 0.17.2 by @dependabot[bot] in #1599
- Bump rand crates to 0.10.x releases by @mtreinish in #1604
- Publish Python 3.14 free-threaded wheels by @IvanIsCoding in #1612
- Add longest_path_length to rustworkx_core::dag_algo by @mtreinish in #1605
- Prepare 0.18.0 release by @mtreinish in #1607
New Contributors
- @d-miketa made their first contribution in #1505
- @dheerajnbhat made their first contribution in #1530
- @Tamir198 made their first contribution in #1532
- @jberg5 made their first contribution in #1546
- @Rachel-Eva made their first contribution in #1567
- @selmanozleyen made their first contribution in #1565
- @lueckem made their first contribution in #1586
- @wallies made their first contribution in #1583
- @techyangj made their first contribution in #1587
- @DanielVoogsgerd made their first contribution in #1594
- @spital made their first contribution in #1595
Full Changelog: 0.17.1...0.18.0