webgraph 0.4.0

A Rust port of the WebGraph framework (http://webgraph.di.unimi.it/).
Documentation
# Change Log

## [0.4.0] - 2025-11-15

### New

* Updated to last versions of dependencies.

* `labels::eq_sorted` function that checks equality between sorted labelings.

* `labels::check_impl` associated function that checks that the sequential and
  random-access implementations of a random-access labeling return the same
  results.

* `graph::eq` function that checks equality between graphs with sorted lenders.

* `graph::eq_labeled` function that checks equality between labeled graphs with
  sorted lenders.

* `SortedIter` has been renamed `AssumeSortedIterator` for consistency with
  `AssumeSortedLender`.

* `ArcListGraph::new` now returns directly a left projection.

* Visits have been moved here.

* `VecGraph` has new, more efficient constructors from sorted lenders returning
  `ExactSizeIterator`.
  
### Changed

* Several methods previously accepting a `&ThreadPool` now
  they don't. The user can use the standard rayon global thread pool
  or configure their own and use `ThreadPool::install`.

* `JavaPermutation` just implements `SliceByValue` and `SliceByValueMut`,
  rather than `BitFieldSlice` and `BitFieldSliceMut`.

### Fixed

* The successors of `LabeledVecGraph` now implement `SortedIterator`.

## [0.3.0] - 2025-05-23

### Changed

* There is a workspace containing three crates: `webgraph` (basic
  infrastructure, `algo` (algorithms), and `cli` (command line
  interface).

* Layered Label Propagation has been moved to the `algo` crate.

## [0.2.1] - 2025-03-28

### New

* The `pad` command now takes a file instead of a basename, making it possible
  to pad offset files.

* The CLI has been rewritten using `clap`'s declarative interface.

## [0.2.0] - 2025-03-27

### New

* Four new mutable structures: `LabeledVecGraph`, `VecGraph`, `LabeledBTreeGraph`
  and `BTreeGraph`. The latter two structures implements the functionality of the
  old `VecGraph` structure. Migration from the old `VecGraph` requires usually
  just dropping the `Left` projector. The main source of incompatibility is that
  in the new `VecGraph` arcs can be added only in increasing successor order.
  Moreover, `LabeledVecGraph` and `VecGraph` are now two different types. All
  structures can be serialized with ε-serde.

* We now rely on the `dsi-bitstream` mechanism for dynamic code dispatch.

* All dependencies have been updated.

* LLP can be run in split mode.

* New `Granularity` enum to specify granularity of parallel computations.

* `ParMapFold` for generic parallel iteration without some of the
  bottlenecks of Rayon's `ParallelBridge`.

* Layered Label Propagation has been split into a label-generation phase
  and a label-combination phase that can be run separately.

* Log4J-like logging format that includes the thread id.

### Improved

* Argument specifying a thread pool are now simply references.

## [0.1.4] - 2024-08-09

### Fixed

* Wrong class name (BvGraph) in properties.

## [0.1.3] - 2024-08-08

### Fixed

* Triple fields are now public.

## [0.1.2] - 2024-07-31

### Fixed

* Fixed README links.

## [0.1.1] - 2024-07-31

### New

* First release.