AI-Studio/runtime/patches
2026-09-18 14:16:44 +02:00
..
README.md Document the remaining patch and add the changelog entries 2026-09-18 14:16:44 +02:00

Runtime Patches

This directory documents temporary patches for third-party Rust dependencies.

permutation_iterator

qdrant-edge depends on permutation_iterator 0.1.2, and that crate has seen no release since 2019. Its published version pulls in an outdated rand line, which drags a second copy of the whole rand family into our dependency tree: rand 0.7.3, rand_core 0.5.1, rand_chacha 0.2, rand_hc, getrandom 0.1.16, wasi 0.9 and cfg-if 0.1, next to the current ones everything else uses.

The fork SommerEngineering/permutation-iterator-rs is the published 0.1.2 with rand raised to 0.8, so it still satisfies what qdrant-edge asks for. AI Studio pins it in runtime/Cargo.toml:

[patch.crates-io]
permutation_iterator = { git = "https://github.com/SommerEngineering/permutation-iterator-rs.git", rev = "..." }

The same change was offered upstream in asimihsan/permutation-iterator-rs#14, where it has been waiting since 2021. This is tree hygiene, not a build failure: without the patch the runtime still builds, it just carries the old rand family along.

When this patch can go

Either of these is enough, and both are worth a look whenever qdrant-edge is updated:

  • crates.io carries a permutation_iterator newer than 0.1.2 which uses a current rand. Then the [patch.crates-io] entry goes, and qdrant-edge's own requirement decides the version.
  • qdrant-edge stops depending on permutation_iterator at all. Check with cargo tree -i permutation_iterator after the update.

Afterward, grep 'name = "rand"' -A 2 runtime/Cargo.lock must not show a 0.7 version anymore. SommerEngineering/permutation-iterator-rs can then be deleted.