Repository navigation
v4.0.0
Added
- [breaking] redesign abstractions, api, add wasm support (#197)
v4.0.0 is a major milestone and a near full rewrite of orx-parallel, focused on practical performance, better ergonomics, and long-term extensibility.
This release improves compile-time behavior by fixing problematic type-level patterns, and delivers runtime speedups across a broad set of workloads through systematic benchmarking and adaptive runner improvements, especially for heterogeneous task distributions.
It also expands where the crate can run and how it can integrate:
- easier interop with external thread pools via features,
- WebAssembly support with demos and tutorials,
- easier benchmarking workflows for iterative performance tuning,
- and cleaner extension points for prototyping custom runners and experimenting with scheduling strategies.
It re-defines ParExtend trait which is now implemented by all std collections and exposed so that it can be implemented by other collections, see orx-soa as an example.
It also provides a different fold interpretation, please see #51.
v4 includes breaking API changes to thread-local mutable state (see use_new, use_vec, use_slice) and recursive parallel computation interfaces (see into_par_recursive), and it renames into_fallible_option/into_fallible_result to into_optional/into_fallible. In addition, take_while and map_while are temporarily removed from parallel iterators and will return under the new design.
For existing users, migration is mostly straightforward but may require targeted API updates in fallible transformations, thread-local mutability usage, and recursive parallel flows.
Useful links:
- use transformations documentation:
docs/use_transformation.md - wasm demos: https://orx-parallel-wasm-demo-tsp.pages.dev/
- wasm tutorials: https://orx-parallel-wasm-tutorials.pages.dev/
- benchmark results dashboard: https://orx-parallel-benchmarks.pages.dev/
Fixes #129
Fixes #51
Fixes #130
Fixes #119
Fixes #199
Fixes #203
Fixes #202
Fixes #201
Fixes #132