range-set-blaze
Integer sets as fast, sorted integer ranges; Maps with integer-range keys; Full set operations
0.6.1
5.0M downloads/mo
#4535 most downloaded on crates.io
CarlKCarlK/range-set-blaze
What this package is like to depend on
Last release 1 months ago
11 Jul 2026
Ships unpredictably
gaps range from 8 days to 13 months
Some releases are documented
notes for 13 of 24 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
33 releases · first in 2023
8 releases in the last 12 months
see the full history below
Release timeline
33 releases · Apr 2023 to Jul 2026Releases
latest 33-
0.6.111 Jul 2026Release notes
Open source →Added
- Added experimental floating-point range support through the
float_experimentalfeature forf32/f64, and thefloat_nightly_experimentalfeature forf16/f128.Finitesupports finite values with zero canonicalized to+0.0, whileTotalsupports all floating-point values in total order, including NaNs, infinities, and signed zero. Both provide constructors, range operations, andafter/beforenavigation APIs.
- Added experimental floating-point range support through the
-
0.6.027 Jun 2026Release notes
Open source →Added
AssumeSortedStartsnow verifies, in debug builds only, that the ranges it is given actually have sorted starts, panicking with a clear message otherwise. Release builds are unaffected (zero runtime cost). (PR #29)
Breaking
AssumeSortedStartsregains a leading type parameter:AssumeSortedStarts<I>->AssumeSortedStarts<T, I>. MostAssumeSortedStarts::new(iter)calls are unchanged due to inference; explicit type aliases/annotations may need updating.
-
0.5.126 Jun 2026Release notes
Open source →Added
- Implemented
SortedStarts/SortedDisjoint(and the*Mapequivalents) for applicablecore::iter/std::iteradapter types whose iterators cannot break the sorted-disjoint invariants, so these standard iterators can be used directly with the library's operators (PR #27). - Added a combinator to turn an
Option<SortedDisjoint>into aSortedDisjointviaFlatMap/Flatten.
Notes
core::iter::StepByis not yet supported because it does not implementFusedIteratorupstream; see the TODO insrc/sorted_disjoint.rsand https://internals.rust-lang.org/t/implement-fusediterator-for-core-stepby/24074
- Implemented
-
0.5.006 Mar 2026Release notes
Open source →Changed
- Removed redundant struct-level trait bounds across iterator/map/set wrapper structs and kept
constraints on impls/usage sites where needed.
Breaking
AssumeSortedStartsandAssumePrioritySortedStartsMapnow take fewer generic parameters.AssumeSortedStarts<T, I>->AssumeSortedStarts<I>AssumePrioritySortedStartsMap<T, VR, I>->AssumePrioritySortedStartsMap<I>
- Migration note: calls like
AssumeSortedStarts::new(iter)and
AssumePrioritySortedStartsMap::new(iter)are typically unchanged due to inference; explicit
type aliases/annotations may need updates.
Release notes
Open source →Changed
- Removed redundant struct-level trait bounds across iterator/map/set wrapper structs and kept constraints on impls/usage sites where needed.
Breaking
AssumeSortedStartsandAssumePrioritySortedStartsMapnow take fewer generic parameters.AssumeSortedStarts<T, I>->AssumeSortedStarts<I>AssumePrioritySortedStartsMap<T, VR, I>->AssumePrioritySortedStartsMap<I>
- Migration note: calls like
AssumeSortedStarts::new(iter)andAssumePrioritySortedStartsMap::new(iter)are typically unchanged due to inference; explicit type aliases/annotations may need updates.
- Removed redundant struct-level trait bounds across iterator/map/set wrapper structs and kept
-
0.4.425 Feb 2026Release notes
Open source →Changed
RangeSetBlaze::ranges_insertandRangeMapBlaze::ranges_insertnow accept anyRangeBounds<T>, not justRangeInclusive<T>(issue #24).
-
0.4.325 Feb 2026Release notes
Open source →Changed
- Improved local CI ergonomics and speed:
cargo check-allnow runs independent checks in parallel- local
check-alltest target now uses--lib --tests --examplesto skip slow benches
- Updated
from_sliceSIMD imports/bounds for compatibility with current Rust nightly APIs. - Updated
examples/nine_rules_mapsassertions to match right-to-left precedence semantics.
- Improved local CI ergonomics and speed:
-
0.4.201 Feb 2026Release notes
Open source →- Fix SIMD compatibility for nightly: remove LaneCount/SupportedLaneCount
- Update from_slice feature for Rust nightly post-2026-01-28
- Remove obsolete LaneCount and SupportedLaneCount trait bounds
- Update documentation and examples
- Bump version to 0.4.2
- Add developer tooling and fix clippy warnings
- Add justfile for local CI testing
- Add CONTRIBUTING.md developer guide
- Update README.md with contributing section
- Fix clippy::unnecessary_option_map_or_else in integer.rs
Release notes
Open source →Changed
- Updated
from_slicefeature for compatibility with Rust nightly (post-2026-01-28)- Removed obsolete
LaneCountandSupportedLaneCounttrait bounds from SIMD code - Lane count constraints now compiler-enforced (max 64 lanes, power-of-two only)
- Requires recent Rust nightly for
from_slicefeature - No functional changes; purely a compatibility update
- Removed obsolete
-
0.4.127 Oct 2025Release notes
Open source →-
Implemented
RangeOnce<T>, a zero-allocation adapter that yields 0 or 1 non-empty inclusive ranges.-
RangeOnceimplementsSortedStarts<T>andSortedDisjoint<T>, providing a sound and ergonomic way to work with single ranges. -
Example:
&a & RangeOnce::new(15, 35); &a | RangeOnce::new(22, 25); -
Empty ranges (
start > end) now produce an empty iterator, preserving all invariants.
-
-
Added
From<RangeInclusive<T>>forRangeSetBlaze, allowing direct conversion of single ranges:RangeSetBlaze::from(5..=10); RangeSetBlaze::from(5..=4); // yields empty set
-
-
0.3.028 May 2025 -
0.2.014 May 2025Release notes
Open source →- Added support for maps,
RangeMapBlaze. - Add support for
char,IpAddV4, andIpAddV6integer-like types. - Some breaking changes in the rest of the package to improve the API and performance.
- Added support for maps,
-
0.2.0-alpha312 May 2025 pre-releaseNothing published for this version
-
0.2.0-alpha101 May 2024 pre-releaseNothing published for this version
-
0.1.1609 Mar 2024Release notes
Open source →- Added
RangeSetBlaze::from_sorted_starts - Added documentation for
SortedStartsandAssumeSortedStarts - Changed
CheckSortedDisjoint::newto supportIntoIterator - Changed
AssumeSortedStarts::newto supportIntoIterator
- Added
-
0.1.16-alpha102 Mar 2024 pre-releaseNothing published for this version
-
0.1.1510 Feb 2024Release notes
Open source →- Added DoubleEndedIterator when iterating integer elements. Thanks to enh.
-
0.1.1419 Dec 2023Release notes
Open source →Changed
- Added optional
from_slicecargo feature and support for a newRangeSetBlaze::from_sliceconstructor. The feature uses SIMD and requires Rust nightly.
- Added optional
-
0.1.14-beta.419 Dec 2023 pre-releaseNothing published for this version
-
0.1.14-beta.219 Dec 2023 pre-releaseNothing published for this version
-
0.1.14-beta.119 Dec 2023 pre-releaseNothing published for this version
-
0.1.1313 Nov 2023Nothing published for this version
-
0.1.13-beta.325 Oct 2023 pre-releaseNothing published for this version
-
0.1.13-beta.225 Oct 2023 pre-releaseNothing published for this version
-
0.1.13-beta25 Oct 2023 pre-releaseNothing published for this version
-
0.1.929 Jun 2023Nothing published for this version
-
0.1.829 Jun 2023Nothing published for this version
-
0.1.729 Jun 2023Nothing published for this version
-
0.1.602 Jun 2023Nothing published for this version
-
0.1.523 May 2023Nothing published for this version
-
0.1.412 Apr 2023Nothing published for this version
-
0.1.312 Apr 2023Nothing published for this version
-
0.1.206 Apr 2023Nothing published for this version
-
0.1.101 Apr 2023Nothing published for this version
-
0.1.001 Apr 2023Nothing published for this version