build: speed up debug compile loop
- Drop libsqlite3-sys 'bundled' on Linux/macOS so the SQLite C source isn't recompiled every clean build; Windows keeps 'bundled' via a cfg(windows) target override. - Switch opentelemetry-otlp from grpc-tonic to http-proto + reqwest-client. Removes the tonic + h2 + hyper-h2 stack from the build graph; reqwest was already a dependency. Updates otel.rs to call .with_http(). - Add [profile.dev] debug = "line-tables-only" to shrink linker work while keeping panics/backtraces useful. - Add .cargo/config.toml selecting mold via gcc on x86_64-linux-gnu. Requires `apt install mold`. Other platforms use the default linker. - cargo update: lockfile-only refresh of all minor/patch bumps within existing version constraints. Cold debug build: ~1m 37s; touch-one-file rebuild: ~5s on Linux. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
16
Cargo.toml
16
Cargo.toml
@@ -9,6 +9,9 @@ edition = "2024"
|
||||
[profile.release]
|
||||
lto = "thin"
|
||||
|
||||
[profile.dev]
|
||||
debug = "line-tables-only"
|
||||
|
||||
[dependencies]
|
||||
actix = "0.13.1"
|
||||
actix-web = "4"
|
||||
@@ -23,7 +26,7 @@ jsonwebtoken = "9.3.0"
|
||||
serde = "1"
|
||||
serde_json = "1"
|
||||
diesel = { version = "2.2.10", features = ["sqlite"] }
|
||||
libsqlite3-sys = { version = "0.35", features = ["bundled"] }
|
||||
libsqlite3-sys = "0.35"
|
||||
diesel_migrations = "2.2.0"
|
||||
chrono = "0.4"
|
||||
clap = { version = "4.5", features = ["derive"] }
|
||||
@@ -41,9 +44,9 @@ prometheus = "0.13"
|
||||
lazy_static = "1.5"
|
||||
anyhow = "1.0"
|
||||
rand = "0.8.5"
|
||||
opentelemetry = { version = "0.31.0", features = ["default", "metrics", "tracing"] }
|
||||
opentelemetry_sdk = { version = "0.31.0", features = ["default", "rt-tokio-current-thread", "metrics"] }
|
||||
opentelemetry-otlp = { version = "0.31.0", features = ["default", "metrics", "tracing", "grpc-tonic"] }
|
||||
opentelemetry = { version = "0.31.0", features = ["metrics", "trace"] }
|
||||
opentelemetry_sdk = { version = "0.31.0", features = ["rt-tokio-current-thread", "metrics", "logs"] }
|
||||
opentelemetry-otlp = { version = "0.31.0", default-features = false, features = ["trace", "metrics", "logs", "http-proto", "reqwest-client"] }
|
||||
opentelemetry-stdout = "0.31.0"
|
||||
opentelemetry-appender-log = "0.31.0"
|
||||
tempfile = "3.20.0"
|
||||
@@ -63,3 +66,8 @@ image_hasher = "3.0"
|
||||
bk-tree = "0.5"
|
||||
async-trait = "0.1"
|
||||
indicatif = "0.17"
|
||||
|
||||
# Windows lacks system sqlite3, so re-enable the bundled C build there.
|
||||
# Linux/macOS use the system library (faster builds, smaller binary).
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
libsqlite3-sys = { version = "0.35", features = ["bundled"] }
|
||||
|
||||
Reference in New Issue
Block a user