NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2508 most downloaded on crates.io
A hash table with consistent order and fast iteration.
Last release 1 months ago
05 Sep 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 43 of 43 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
43 releases · first in 2016
chore: Release ordermap version 1.2.2
chore: Release ordermap version 1.2.2
const CAP
could shadow the same name in the caller's namespace.const initialization of empty ordermap_with_default! and
orderset_with_default!. The hasher may also be omitted if it's inferrable.chore: Release ordermap version 1.2.1
One column per quarter.
indexmap v2.14.1chore: Release ordermap version 1.2.0
chore: Release ordermap version 1.2.0
indexmap dependency to version 2.14.0.
const-ified methods on Slice types.chore: Release ordermap version 1.1.0
chore: Release ordermap version 1.1.0
indexmap dependency to version 2.13.0 for new features:
Clone for IntoKeys and IntoValues.map::Slice::split_at_checked and split_at_mut_checked.set::Slice::split_at_checked.chore: Release ordermap version 1.0.0
chore: Release ordermap version 1.0.0
indexmap dependency to version 2.12.0.pop_if methods to OrderMap and OrderSet, similar to the
method for Vec added in Rust 1.86.chore: Release ordermap version 0.5.12
chore: Release ordermap version 0.5.12
serde version only apply when "serde" is enabled.chore: Release ordermap version 0.5.11
chore: Release ordermap version 0.5.11
serde_core, improving build
parallelism in cases where other dependents have enabled "serde/derive".chore: Release ordermap version 0.5.10
chore: Release ordermap version 0.5.10
get_key_value_mut method to OrderMap.Ord bound on insert_sorted_by methods.chore: Release ordermap version 0.5.9
chore: Release ordermap version 0.5.9
insert_sorted_by and insert_sorted_by_key methods to OrderMap,
OrderSet, and VacantEntry, like customizable versions of insert_sorted.is_sorted, is_sorted_by, and is_sorted_by_key methods to
OrderMap and OrderSet, as well as their Slice counterparts.sort_by_key and sort_unstable_by_key methods to OrderMap and
OrderSet, as well as parallel counterparts.replace_index methods to OrderMap, OrderSet, and VacantEntry
to replace the key (or set value) at a given index.sval serialization support.chore: Release ordermap version 0.5.8
chore: Release ordermap version 0.5.8
extract_if methods to OrderMap and OrderSet, similar to the
methods for HashMap and HashSet with ranges like Vec::extract_if.#[track_caller] annotations to functions that may panic.chore: Release ordermap version 0.5.7
chore: Release ordermap version 0.5.7
get_disjoint_mut method to OrderMap, matching Rust 1.86's
HashMap method.get_disjoint_indices_mut method to OrderMap, matching Rust 1.86's
get_disjoint_mut method on slices.indexmap dependency to version 2.9.0.chore: Release ordermap version 0.5.6
chore: Release ordermap version 0.5.6
ordermap_with_default! and orderset_with_default! to be used with
alternative hashers, especially when using the crate without std.indexmap dependency to version 2.8.0.Added #[track_caller] to functions that may panic.
#[track_caller] to functions that may panic.indexmap dependency to version 2.7.1.Added methods Entry::insert_entry and VacantEntry::insert_entry, returning an OccupiedEntry after insertion.
Entry::insert_entry and VacantEntry::insert_entry, returning
an OccupiedEntry after insertion.indexmap dependency to version 2.7.0, indirectly updating to
hashbrown version 0.15 as well.Added an insert_before method to OrderMap and OrderSet, as an alternative to shift_insert with different behavior on existing entries.
insert_before method to OrderMap and OrderSet, as an
alternative to shift_insert with different behavior on existing entries.first_entry and last_entry methods to OrderMap.From implementations between IndexedEntry and OccupiedEntry.Added methods OrderMap::append and OrderSet::append, moving all items from one map or set into another, and leaving the original capacity for reuse.
OrderMap::append and OrderSet::append, moving all items from
one map or set into another, and leaving the original capacity for reuse.Added trait MutableEntryKey for opt-in mutable access to map entry keys.
MutableEntryKey for opt-in mutable access to map entry keys.MutableKeys::iter_mut2 for opt-in mutable iteration of map
keys and values.Reinstated ordermap as a crate that wraps indexmap with stronger ordering semantics. It does consider order for PartialEq and Eq, also adding implemen
ordermap as a crate that wraps indexmap with stronger
ordering semantics. It does consider order for PartialEq and Eq,
also adding implementations of PartialOrd, Ord, and Hash. Methods
like remove use the semantics of indexmap's shift_remove.Inserted more deprecation information in the documentation. Note: the crate ordermap has been renamed with no change in functionality to indexmap; ple…
Renamed crate to indexmap; the ordermap crate is now deprecated and the types OrderMap/Set now have a deprecation notice.
indexmap; the ordermap crate is now deprecated
and the types OrderMap/Set now have a deprecation notice.This is the last release series for this ordermap under that name, because the crate is going to be renamed to indexmap (with types IndexMap, IndexSet
This is the last release series for this ordermap under that name,
because the crate is going to be renamed to indexmap (with types
IndexMap, IndexSet) and no change in functionality!
The map and its associated structs moved into the map submodule of the
crate, so that the map and set are symmetric
Entry and other structs are now under ordermap::map::Internally refactored OrderMap<K, V, S> so that all the main algorithms
(insertion, lookup, removal etc) that don't use the S parameter (the
hasher) are compiled without depending on S, which reduces generics bloat.
Entry<K, V> no longer has a type parameter S, which is just like
the standard HashMap's entry.
Minimum Rust version requirement increased to Rust 1.18
- Documentation improvements
The .retain() methods for OrderMap and OrderSet now traverse the elements in order, and the retained elements keep their order
.retain() methods for OrderMap and OrderSet now
traverse the elements in order, and the retained elements keep their order.sort_by(), .sort_keys() to OrderMap and
.sort_by(), .sort() to OrderSet. These methods allow you to
sort the maps in place efficiently.Document insertion behaviour better by @lucab
OrderMap::drain is now (too) a double ended iterator.
OrderSet by @cuviper!OrderMap::drain is now (too) a double ended iterator.In all ordermap iterators, forward the collect method to the underlying iterator as well.
collect method to the underlying
iterator as well.The methods get_pair, get_pair_index were both replaced by get_full (and the same for the mutable case).
get_pair, get_pair_index were both replaced by
get_full (and the same for the mutable case).swap_remove_pair replaced by swap_remove_full.MutableKeys for opt-in mutable key access. Mutable key access
is only possible through the methods of this extension trait.Equivalent for key equivalence. This extends the
Borrow trait mechanism for OrderMap::get in a backwards compatible
way, just some minor type inference related issues may become apparent.
See #10 for more information.Extend<(&K, &V)> by @xfix.Fix deserialization to support custom hashers by @Techcable.
.index() on the entry types by @garro95.Add methods .with_hasher(), .hasher().
.with_hasher(), .hasher().Support ExactSizeIterator for the iterators. By @Binero.
ExactSizeIterator for the iterators. By @Binero.Box<[Pos]> internally, saving a word in the OrderMap struct."serde-1". By @xfix.Add iterator .drain(..) by @stevej.
.drain(..) by @stevej.Add method .is_empty() by @overvenus.
.is_empty() by @overvenus.PartialEq, Eq by @overvenus..sorted_by().Add iterators .values() and .values_mut().
.values() and .values_mut().- Add .retain().
.retain().Add OccupiedEntry::remove_entry and other minor entry methods, so that it now has all the features of HashMap's entries.
OccupiedEntry::remove_entry and other minor entry methods,
so that it now has all the features of HashMap's entries.- Improved .pop() slightly.
.pop() slightly.Improved performance of .insert() ([#3]) by @pczarn.
.insert() (#3) by @pczarn.Generalize Entry for now, so that it works on hashmaps with non-default hasher. However, there's a lingering compat issue since libstd HashMap does no
Entry for now, so that it works on hashmaps with non-default
hasher. However, there's a lingering compat issue since libstd HashMap
does not parameterize its entries by the hasher (S typarm)..nth().Disable the verbose Debug impl by default.
Debug impl by default.Fix doc links and clarify docs.
Add more HashMap methods & compat with its API.
HashMap methods & compat with its API..entry() (the simplest parts of the API)..reserve() (placeholder impl)..remove() as synonym for .swap_remove()..insert() to swap value if the entry already exists, and
return Option..get_index(), .get_index_mut(), .swap_remove_index(),
.get_pair_index(), .get_pair_index_mut().Implement the 32/32 split idea for Pos which improves cache utilization and lookup performance.
Pos which improves cache utilization
and lookup performance.- Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →