Skip to content

Release 0.6.0

Choose a tag to compare

@StevenBtw StevenBtw released this 01 Feb 13:23
· 2 commits to main since this release
a0309a9

[0.6.0] - 2026-02-01

Rust acceleration! Optional Rust backend for graph algorithms with 3-60x speedup, ported from Grafeo.

Added

  • Rust Backend: Optional high-performance Rust implementations via PyO3. Algorithms automatically use Rust when available, with seamless Python fallback. Use backend="rust" or backend="python" to force a specific implementation.

  • Algorithms with Rust backends:

    • floyd_warshall - All-pairs shortest paths (45-60x speedup)
    • bellman_ford - Negative weight shortest paths (10-20x speedup)
    • dijkstra_edges - Single-source shortest paths (5-10x speedup)
    • bfs_edges, dfs_edges - Graph traversal (3-5x speedup)
    • pagerank_edges - Node importance ranking (10-15x speedup)
    • strongly_connected_components_edges, topological_sort_edges - Dependency analysis (5-10x speedup)
    • kruskal - Minimum spanning tree (5-10x speedup)
  • Two API styles for graph algorithms:

    • Callback-based (dijkstra, bfs, etc.) - Flexible, works with any node type, pure Python
    • Edge-list (dijkstra_edges, bfs_edges, etc.) - Integer nodes 0..n-1, Rust-accelerated
  • Performance documentation: New Performance page with benchmarks, backend usage guide, and API comparison.

  • Backend Infrastructure:

    • solvor/rust/ - Backend detection, routing, and adapters
    • rust/ - Rust crate with PyO3 bindings
    • Multi-platform wheel builds (Linux, macOS, Windows) via GitHub Actions
  • Developer Tooling:

    • Added prek for fast pre-commit hooks (Rust-based, uv-compatible)

Changed

  • Build System: Switched from hatchling to maturin for mixed Python/Rust builds.
  • CI: New publish.yml workflow builds wheels for all platforms.
  • Code Organization: Moved Rust backend utilities to solvor/rust/ module.

Full Changelog: v0.5.5...v0.6.0