diff --git a/Cargo.lock b/Cargo.lock index 2ac84473..7dfe4034 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -146,6 +146,7 @@ dependencies = [ "home", "log", "miette", + "mimalloc", "once_cell", "reqwest", "scopeguard", @@ -778,6 +779,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "libmimalloc-sys" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ca136052550448f55df7898c6dbe651c6b574fe38a0d9ea687a9f8088a2e2c" +dependencies = [ + "cc", +] + [[package]] name = "libz-ng-sys" version = "1.1.8" @@ -850,6 +860,15 @@ dependencies = [ "syn", ] +[[package]] +name = "mimalloc" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f64ad83c969af2e732e907564deb0d0ed393cec4af80776f77dd77a1a427698" +dependencies = [ + "libmimalloc-sys", +] + [[package]] name = "mime" version = "0.3.16" diff --git a/Cargo.toml b/Cargo.toml index 89e2e47b..66fb5592 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,8 +68,12 @@ zstd = { version = "0.10.0", features = ["bindgen", "zstdmt"], default-features [target.'cfg(any(target_os = "macos", target_os = "windows"))'.dependencies] guess_host_triple = "0.1.3" -[target.'cfg(windows)'.dependencies] -mimalloc = { version = "0.1.29", default-features = false} +[target.'cfg(any(windows, target_env = "musl"))'.dependencies] +mimalloc = { version = "0.1.29", default-features = false, optional = true } + +[features] +default = [] +mimalloc = ["dep:mimalloc"] [dev-dependencies] env_logger = "0.9.0" diff --git a/src/main.rs b/src/main.rs index 7a02617e..882e90f4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,7 @@ use cargo_binstall::{ *, }; -#[cfg(windows)] +#[cfg(all(feature = "mimalloc", any(windows, target_env = "musl")))] #[global_allocator] static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;