diff --git a/crates/uv-dev/src/list_packages.rs b/crates/uv-dev/src/list_packages.rs
index 0641bf617..27d13917d 100644
--- a/crates/uv-dev/src/list_packages.rs
+++ b/crates/uv-dev/src/list_packages.rs
@@ -1,7 +1,7 @@
use anstream::println;
use anyhow::Result;
use clap::Parser;
-
+use tokio::sync::Semaphore;
use uv_cache::{Cache, CacheArgs};
use uv_client::{BaseClientBuilder, RegistryClientBuilder};
use uv_distribution_types::IndexUrl;
@@ -27,9 +27,10 @@ pub(crate) async fn list_packages(
.build();
let index_url = IndexUrl::parse(&args.url, None)?;
- let index = client.fetch_simple_index(&index_url).await?;
+ let concurrency = Semaphore::new(Semaphore::MAX_PERMITS);
+ let index = client.fetch_simple_index(&index_url, &concurrency).await?;
- for package_name in index.iter() {
+ for package_name in &index.projects {
println!("{}", package_name);
}
diff --git a/crates/uv-distribution/src/distribution_database.rs b/crates/uv-distribution/src/distribution_database.rs
index 23c910e91..6e9d6d529 100644
--- a/crates/uv-distribution/src/distribution_database.rs
+++ b/crates/uv-distribution/src/distribution_database.rs
@@ -590,12 +590,16 @@ impl<'a, Context: BuildContext> DistributionDatabase<'a, Context> {
) -> Result