From dbfe69572e339d810df6fbe69364882d92d8b7f9 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Sun, 10 May 2026 22:48:35 +0800 Subject: [PATCH] perf(build): make DuckDB bundled compilation optional Add duckdb-bundled feature gate (default on) to dbx-core. Local dev can use --no-default-features to skip DuckDB C++ compilation (~170s), while CI/Docker keeps the default bundled build. --- crates/dbx-core/Cargo.toml | 6 +++++- src-tauri/Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/dbx-core/Cargo.toml b/crates/dbx-core/Cargo.toml index 4f8f4696a..139d3183e 100644 --- a/crates/dbx-core/Cargo.toml +++ b/crates/dbx-core/Cargo.toml @@ -3,6 +3,10 @@ name = "dbx-core" version = "0.1.0" edition = "2021" +[features] +default = ["duckdb-bundled"] +duckdb-bundled = ["duckdb/bundled"] + [dependencies] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" @@ -17,7 +21,7 @@ uuid = { version = "1", features = ["v4", "serde"] } sqlx = { version = "0.8", features = ["runtime-tokio", "tls-rustls", "mysql", "postgres", "sqlite", "json", "chrono", "uuid", "rust_decimal"] } redis = { version = "0.32.2", features = ["tokio-comp", "tls-rustls", "tokio-rustls-comp"] } rustls = { version = "0.23", features = ["aws-lc-rs"] } -duckdb = { version = "1.3.2", features = ["bundled"] } +duckdb = "1.3.2" tiberius = { version = "0.12.3", default-features = false, features = ["tds73", "chrono", "rust_decimal", "rustls"] } reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] } futures = "0.3" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 8cb56e569..b9db65012 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -36,7 +36,7 @@ tauri-plugin-window-state = "2" redis = { version = "0.32.2", features = ["tokio-comp", "tls-rustls", "tokio-rustls-comp"] } rustls = { version = "0.23", features = ["aws-lc-rs"] } portpicker = "0.1.1" -duckdb = { version = "1.3.2", features = ["bundled"] } +duckdb = "1.3.2" tiberius = { version = "0.12.3", default-features = false, features = ["tds73", "chrono", "rust_decimal", "rustls"] } tokio-util = { version = "0.7", features = ["compat"] } reqwest = { version = "0.12", features = ["json", "stream"] }