Skip to content
v5.0.0

No changes to the Python code in this release, only Rust.

This is the first release of swh-graph on crates.io.

Breaking changes (Rust):

* Rename "labelled" -> "labeled", for consistency with webgraph
* Rename SWHType to NodeType
* Moved find_root_dir to the "stdlib"
* Make labeled_{predecessor,successors} return typed labels
* Rename Rust all "::new_with" constructors to just "::with"
* Rust: implement FromStr (rather than TryInto<&str>) for NodeType

Additions (Rust):

* Added a "stdlib" of algorithms (find_latest_snp, path
  resolution functions, generic node visit operator)
* GraphBuilder: Add support for Visit (and Branch) labels
* Add support for multi-arcs in VecGraph and GraphBuilder
* Add `.flatten_labels()` on labeled arc iterator
* Rewrite EDGE_LABELS compression step in Rust
* Subgraph: add builder based on NodeConstraint
* Add tool to dump edges from a compressed graph

Improvements (Rust):

* Switch to released versions of webgraph and ar_row
* Various performance improvements in properties compression
* GraphBuilder: add BuiltGraph type alias for done() return type
* Rewrite CountPaths to produce sharded Parquet files directly
* Small improvement of the rust executable dir handling in check_config()

Soundness fixes (Rust):

* Fixed all bugs NODE_PROPERTIES compression (or at least, have a strict
  subset of the Java implementation's bugs). In particular:
  * properties: Update arrays atomically and remove LongArrayBitVector
* Remove redundant 'datasets' path component
* Rust: use create_new() to create on-disk maps
* Subgraph: fix has_arc(), which was transposing the passed arc

Crash/compilation fixes (Rust):

* Fix detection of missing node2type.bin/content.is_skipped.bits file
* Fix loading node2type.bin larger than 2^31 * 8 bytes
* Fix debian requirements
* blobs_dataset: Make Datafusion write to a single file
* root_directory.rs: do not require (unneeded) SwhBackwardGraph trait

Documentation:

* Subgraph: document that num_nodes/arcs() return non-filtered values
* Add a 'minimal build for tests' section in rust/README.md
* review *.rs file headers: add missing Copyright decl