itertools breaking changes
Every breaking API change we have recorded in itertools on crates.io: 61 breaking changes in 1 version. Below are its newest version, removals and renames first, each with its source.
Newest change June 16, 2026

On this page
0.15.0
- Removed
itertools::Position::First
itertools::Position::First was removed in itertools 0.15.0 crates.io - Removed
itertools::Position::Last
itertools::Position::Last was removed in itertools 0.15.0 crates.io - Removed
itertools::Position::Middle
itertools::Position::Middle was removed in itertools 0.15.0 crates.io - Removed
itertools::Position::Only
itertools::Position::Only was removed in itertools 0.15.0 crates.io - Behavior changed
collect_vec
Calling collect_vec and discarding its result now produces a compiler warning, which may fail builds that deny warnings. github.com - Signature changed
itertools::CombinationsWithReplacement
Was struct CombinationsWithReplacement<I> where I: Iterator, I::Item: Clone,; now type CombinationsWithReplacement<I> = CombinationsWithReplacementGeneric<I, Box<[usize]>>. crates.io - Signature changed
itertools::Duplicates
Was type Duplicates<I> = private::DuplicatesBy<I, <I as Iterator>::Item, private::ById>; now type Duplicates<I, S = RandomState> = private::DuplicatesBy<I, <I as Iterator>::Item, private::ById, S>. crates.io - Signature changed
itertools::DuplicatesBy
Was type DuplicatesBy<I, V, F> = private::DuplicatesBy<I, V, private::ByFn<F>>; now type DuplicatesBy<I, V, F, S = RandomState> = private::DuplicatesBy<I, V, private::ByFn<F>, S>. crates.io - Signature changed
itertools::GroupingMap
Was struct GroupingMap<I>; now struct GroupingMap<I, S = RandomState> where S: BuildHasher,. crates.io - Signature changed
itertools::GroupingMap::aggregate
Was fn aggregate<FO, R>(self, mut operation: FO) -> HashMap<K, R> where FO: FnMut(Option<R>, &K, V) -> Option<R>,; now fn aggregate<FO, R>(self, mut operation: FO) -> HashMap<K, R, S> where FO: FnMut(Option<R>, &K, V) -> Option<R>,. crates.io
And 51 more in this version.
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp