diff --git a/Cargo.lock b/Cargo.lock index 1fef396..7edeabb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -135,6 +135,15 @@ dependencies = [ "rand_core 0.10.1", ] +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "color-eyre" version = "0.6.5" @@ -663,6 +672,17 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" +[[package]] +name = "libmimalloc-sys2" +version = "0.1.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19dd68bf4f38eb64bf37ee1811f23f83ab65f6b170e3991ca0b73e0a553ef057" +dependencies = [ + "cc", + "cmake", + "libc", +] + [[package]] name = "lock_api" version = "0.4.14" @@ -699,6 +719,15 @@ version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" +[[package]] +name = "mimalloc-safe" +version = "0.1.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "237c3f32c58ce9695414e3c49fc2771b5c741d569ebec39995fb0ae4df497ba8" +dependencies = [ + "libmimalloc-sys2", +] + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -848,6 +877,7 @@ name = "nailpit" version = "0.1.0" dependencies = [ "color-eyre", + "mimalloc-safe", "nailbox", "nailconfig", "nailgen", @@ -865,7 +895,6 @@ dependencies = [ "nailstate", "nailstream", "nailtrace", - "rpmalloc", "tokio", "tokio-util", "tracing", @@ -1412,24 +1441,6 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" -[[package]] -name = "rpmalloc" -version = "0.2.2" -source = "git+https://github.com/EmbarkStudios/rpmalloc-rs?rev=1c27c57902035940fe0ede684dfd55b1cf05b98c#1c27c57902035940fe0ede684dfd55b1cf05b98c" -dependencies = [ - "rpmalloc-sys", -] - -[[package]] -name = "rpmalloc-sys" -version = "0.2.3+d5c329e" -source = "git+https://github.com/EmbarkStudios/rpmalloc-rs?rev=1c27c57902035940fe0ede684dfd55b1cf05b98c#1c27c57902035940fe0ede684dfd55b1cf05b98c" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "rustc-demangle" version = "0.1.28" diff --git a/Cargo.toml b/Cargo.toml index 40fb968..30d80bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,8 +75,8 @@ path = "src/main.rs" name = "nailpit" [features] -default = ["rpmalloc"] -rpmalloc = ["dep:rpmalloc"] +default = ["custom_alloc"] +custom_alloc = ["dep:mimalloc-safe"] detailed_traces = ["nailgen/detailed_traces", "nailrater/detailed_traces"] [dependencies] @@ -101,7 +101,7 @@ color-eyre.workspace = true tokio.workspace = true tokio-util.workspace = true tracing.workspace = true -rpmalloc = { git = "https://github.com/EmbarkStudios/rpmalloc-rs", rev = "1c27c57902035940fe0ede684dfd55b1cf05b98c", optional = true } +mimalloc-safe = { version = "0.1.66", optional = true } [profile.release] codegen-units = 1 diff --git a/crates/nailresponder/src/lib.rs b/crates/nailresponder/src/lib.rs index b29d5f8..1cfe103 100644 --- a/crates/nailresponder/src/lib.rs +++ b/crates/nailresponder/src/lib.rs @@ -65,10 +65,11 @@ impl NailResponder { .insert(route, RouteConfig::new(route.as_str(), generator.clone())) .ok(); let generated_route = if route == "/" { - "/{{*generated}}".to_string() + "/{*generated}".to_string() } else { format!("{route}/{{*generated}}") }; + tracing::info!("INIT ROUTE: {generated_route}"); routes .insert( generated_route, diff --git a/src/main.rs b/src/main.rs index 135808e..3a1b724 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,9 +2,9 @@ use color_eyre::Result; use tokio_util::sync::CancellationToken; -#[cfg(feature = "rpmalloc")] +#[cfg(feature = "custom_alloc")] #[global_allocator] -static GLOBAL: rpmalloc::RpMalloc = rpmalloc::RpMalloc; +static GLOBAL: mimalloc_safe::MiMalloc = mimalloc_safe::MiMalloc; async fn spawn_axum_worker( state: nailstate::ServerState,