{"ecosystem":"cargo","package":"futures-util","from_version":null,"to_version":null,"changes":[{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Fix use after free of task in `FuturesUnordered` when dropped future panics (#2886)","migration_hint":null},{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Fix soundness bug in `task::waker_ref` (#2830)","migration_hint":null},{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Fix bugs in `AsyncBufRead::read_line` and `AsyncBufReadExt::lines` (#2884)","migration_hint":null},{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Fix parsing issue in `select!`/`select_biased!` (#2832)","migration_hint":null},{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Work around issue due to upstream `Waker::will_wake` change (#2865)","migration_hint":null},{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Add `stream::Iter::{get_ref,get_mut,into_inner}` (#2875)","migration_hint":null},{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Add `future::AlwaysReady` (#2825)","migration_hint":null},{"from_version":"0.3.30","to_version":"0.3.31","change_type":"breaking","description":"Relax trait bound on non-constructor methods of `io::{BufReader,BufWriter}` (#2848)","migration_hint":null},{"from_version":"0.3.9","to_version":"0.3.10","change_type":"breaking","description":"Fixed type-inference in `sink::unfold` by specifying more of its types (breaking change -- see #2311)","migration_hint":null},{"from_version":"0.3.0","to_version":"0.3.1","change_type":"api","description":"Fix signature of `SpawnExt` and `LocalSpawnExt` trait (breaking change -- see #1959)","migration_hint":null}],"total":10,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"miss"}