NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1563 most downloaded on crates.io
Map and set data structures whose keys are stored as ranges. Contiguous and overlapping ranges that map to the same value are coalesced into a single range.
Last release 1 months ago
14 Aug 2026
Release timing varies
gaps range from 2 weeks to 1.4 years
Most releases are documented
notes for 24 of 30 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
30 releases · first in 2019
Add support for using ordered_float::NotNan and ordered_float::NotNan as keys of RangeInclusiveMap and RangeInclusiveSet, gated behind the ordered-flo
Features:
ordered_float::NotNan<f32> and ordered_float::NotNan<f64> as keys of RangeInclusiveMap and RangeInclusiveSet, gated behind the ordered-float5 feature. The successor of a float is taken to be the next representable float, so ranges that are one ULP (unit in the last place) apart will be coalesced. Thanks to Qix- for implementing this!Fixes:
serde1 feature is enabled. Enabling serde1 also enabled serde's default features, including its std feature, so this has never actually worked.Changes:
Fix PartialEq, PartialOrd, and Ord implementations for RangeInclusiveMap (and RangeInclusiveSet). These previously only compared the starts of ranges
One column per quarter.
PartialEq, PartialOrd, and Ord implementations for RangeInclusiveMap (and RangeInclusiveSet). These previously only compared the starts of ranges instead of the entire range. (Same class of bug that was fixed for RangeMap in v1.3.1.)Relax Eq bounds to PartialEq. (We don't actually need to demand reflexivity.)
Features:
Eq bounds to PartialEq. (We don't actually need to demand reflexivity.)Changes:
Add quickcheck support, gated behind the quickcheck feature.
quickcheck feature.RangeMap::gaps by efficiently seeking to the start of the query range.Relax bounds on Default implementation for all map and set types. Requiring K: Default and V: Default was accidentally introduced in v1.5.0.
Default implementation for all map and set types. Requiring K: Default and V: Default was accidentally introduced in v1.5.0.chore: Release rangemap version 1.5.0
chore: Release rangemap version 1.5.0
Huge thanks to xfbs, who did pretty much all the work you see in the changelog below! 💖
Features:
union and intersection methods to iterate over the union or intersection of two sets.first_range_value and last_range_value methods to map types and first and last methods to set types.range_set![0..100, 200..300, 400..500].Default and Hash for all collection types.DoubleEndedIterator for all iterators.From<[_; N]> (e.g. From<[Range<T>; N]> for RangeSet<T>) for all collections. (Previously you could build a collection from an iterator, but not directly from an array.)BitOr and BitAnd for set types. (Convenience wrapper around the union and intersection methods mentioned above.)R: Borrow<Range<K>> as argument to overlapping methods, allowing it to take ranges by value.Changes:
BTreeMap::first_key_value and BTreeMap::last_key_value, and for compatibility with new versions of some of rangemap's test dependencies.Internal:
Bump MSRV to 1.61.0 and prepare 1.4.0 release
Bump MSRV to 1.61.0 and prepare 1.4.0 release
Fix PartialEq, PartialOrd, and Ord implementations for RangeMap (and RangeSet). These previously only compared the starts of ranges instead of the ent
PartialEq, PartialOrd, and Ord implementations for RangeMap (and RangeSet). These previously only compared the starts of ranges instead of the entire range. Thanks to https://github.com/hecrj for finding and fixing this!Add overlapping method to all collection types, which returns an iterator over all stored entries that completely or partially overlap a given range.
overlapping method to all collection types, which returns an iterator over all stored entries that completely or partially overlap a given range.overlaps convenience method to all collection types, which returns whether any stored range completely or partially overlaps a given range.Add clear, len, and is_empty methods for all map and set types.
clear, len, and is_empty methods for all map and set types.const_fn feature work again. (Previous release accidentally broke the const versions of RangeMap::new and RangeSet::new.)Implement PartialEq, Eq, PartialOrd, and Ord for all map and set types.
PartialEq, Eq, PartialOrd, and Ord for all map and set types.new functions for all map and set types const when const_fn feature is enabled.Fix Gaps iterator for RangeMap yielding an empty gap for an empty outer range. Simplified gaps logic and expanded fuzz testing to better cover this an
Gaps iterator for RangeMap yielding an empty gap for an empty outer range. Simplified gaps logic and expanded fuzz testing to better cover this and similar cases.Fix empty gaps returned by Gaps iterator for RangeInclusiveMap. Added fuzz tests for Gaps iterators.
Gaps iterator for RangeInclusiveMap. Added fuzz tests for Gaps iterators.Fix empty gaps returned by Gaps iterator for RangeMap, and incorrect gaps returned by Gaps iterator for RangeInclusiveMap.
Gaps iterator for RangeMap, and incorrect gaps returned by Gaps iterator for RangeInclusiveMap.It's time. (No functional change.)
It's time. (No functional change.)
Expose nameable types for iterators: Iterator, IntoIterator, Gaps (for each collection type).
Iterator, IntoIterator, Gaps (for each collection type).StepLite and StepFns.- Features: - Add serde support.
Implement more traits for all map and set types: IntoIter, FromIter, and Extend.
IntoIter, FromIter, and Extend.Update all dev-dependencies to latest versions.
no_std environments.Fix performance regression introduced in v0.1.9, which made inserts extremely slow for large maps.
Fix coalescing of contiguous ranges. In some cases RangeMap and RangeInclusiveMap would leave two separate contiguous ranges with the same value inste
RangeMap and RangeInclusiveMap would leave two separate contiguous ranges with the same value instead of combining them into one.Implement Debug for all map and set types.
Debug for all map and set types.Add gaps method to all map and set types for iterating over sub-ranges of a given outer range that are not covered by any stored range.
gaps method to all map and set types for iterating over sub-ranges of a given outer range that are not covered by any stored range.Add RangeInclusiveMap and RangeInclusiveSet types for storing closed ranges.
RangeInclusiveMap and RangeInclusiveSet types for storing closed ranges.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →