From b5e830a771f31b8914098b18a5bf14ba32a1f0b1 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 9 Dec 2025 09:26:14 +0100 Subject: [PATCH] use lzma-rust2 instead of xz2 --- Cargo.lock | 55 +++++++++++++++++++++++++++++++++- Cargo.toml | 2 +- crates/pixi_url/Cargo.toml | 2 +- crates/pixi_url/src/extract.rs | 4 +-- 4 files changed, 58 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 852f703733..db1543f6fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -847,6 +847,7 @@ dependencies = [ "matchit", "memchr", "mime", + "multer", "percent-encoding", "pin-project-lite", "serde_core", @@ -3870,6 +3871,10 @@ name = "lzma-rust2" version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bd57dc1513725e598b9609a9505d6fe28ee280861e5b4d792b3db9d00b1a315" +dependencies = [ + "crc", + "sha2", +] [[package]] name = "lzma-sys" @@ -4081,6 +4086,23 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b52c1b33ff98142aecea13138bd399b68aa7ab5d9546c300988c345004001eea" +[[package]] +name = "multer" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http 1.4.0", + "httparse", + "memchr", + "mime", + "spin", + "version_check", +] + [[package]] name = "munge" version = "0.4.7" @@ -4843,6 +4865,29 @@ dependencies = [ "uv-normalize", ] +[[package]] +name = "pixi_artifact_server" +version = "0.1.0" +dependencies = [ + "anyhow", + "axum", + "clap", + "fs-err", + "hex", + "rattler_conda_types", + "serde", + "serde_json", + "sha2", + "thiserror 2.0.17", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tracing", + "tracing-subscriber", + "uuid", +] + [[package]] name = "pixi_auth" version = "0.1.0" @@ -5686,6 +5731,7 @@ dependencies = [ "fs-err", "futures", "indicatif", + "lzma-rust2", "pixi_record", "pixi_spec", "pixi_utils", @@ -5700,7 +5746,6 @@ dependencies = [ "tokio", "tracing", "url", - "xz2", "zip 2.4.2", "zstd", ] @@ -8124,6 +8169,12 @@ dependencies = [ "smallvec", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "spki" version = "0.6.0" @@ -8576,6 +8627,7 @@ dependencies = [ "bytes", "libc", "mio", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -8781,6 +8833,7 @@ dependencies = [ "tower", "tower-layer", "tower-service", + "tracing", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 84e59c10f0..de1204a33e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -174,7 +174,7 @@ tokio-util = "0.7.13" toml-span = "0.6.0" toml_edit = "0.23.0" tracing = "0.1.41" -xz2 = "0.1.7" +lzma-rust2 = { version = "0.15", default-features = false, features = ["xz", "std"] } # Forcing the version due to this PR https://github.com/tokio-rs/tracing/pull/3368 tracing-subscriber = "=0.3.19" typed-path = "0.11.0" diff --git a/crates/pixi_url/Cargo.toml b/crates/pixi_url/Cargo.toml index 8c7c3a3414..5d27b04abd 100644 --- a/crates/pixi_url/Cargo.toml +++ b/crates/pixi_url/Cargo.toml @@ -29,7 +29,7 @@ thiserror.workspace = true tokio.workspace = true tracing.workspace = true url.workspace = true -xz2.workspace = true +lzma-rust2.workspace = true zip.workspace = true zstd.workspace = true diff --git a/crates/pixi_url/src/extract.rs b/crates/pixi_url/src/extract.rs index 99132b5381..e708de4506 100644 --- a/crates/pixi_url/src/extract.rs +++ b/crates/pixi_url/src/extract.rs @@ -12,7 +12,7 @@ enum TarCompression<'a> { PlainTar(Box), Gzip(flate2::read::GzDecoder>), Bzip2(bzip2::read::BzDecoder>), - Xz2(xz2::read::XzDecoder>), + Xz2(Box>>), Zstd(zstd::stream::read::Decoder<'a, std::io::BufReader>>), } @@ -62,7 +62,7 @@ fn ext_to_compression<'a>( Ok(TarCompression::Bzip2(bzip2::read::BzDecoder::new(file))) } Some("lzma" | "tlz" | "xz" | "txz") => { - Ok(TarCompression::Xz2(xz2::read::XzDecoder::new(file))) + Ok(TarCompression::Xz2(Box::new(lzma_rust2::XzReader::new(file, false)))) } Some("zst" | "tzst") => Ok(TarCompression::Zstd( zstd::stream::read::Decoder::new(file)