perf: reduce binary sizes from 15M/11M to 3.8M/5.5M
- Add [profile.release]: opt-level=z, lto=true, strip=true, codegen-units=1, panic=abort - Replace vendored openssl (~5MB) with ed25519-dalek (pure Rust, ~100KB) - Feature-gate deps: server (actix, chrono) vs pusher (zmq, reqwest, ed25519-dalek) - Remove unused confy dependency - bal-pusher: 15M -> 3.8M (-75%) - bal-server: 11M -> 5.5M (-50%)
This commit is contained in:
40
Cargo.toml
40
Cargo.toml
@@ -4,33 +4,48 @@ version = "0.3.1"
|
||||
edition = "2024"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
[features]
|
||||
default = ["server"]
|
||||
server = ["dep:actix-web", "dep:actix-governor", "dep:actix-rt", "dep:chrono", "dep:hex-conservative"]
|
||||
pusher = ["dep:zmq", "dep:reqwest", "dep:byteorder", "dep:base64", "dep:ed25519-dalek"]
|
||||
|
||||
[dependencies]
|
||||
base64 = { version = "0.22.1" }
|
||||
bs58 = { version = "0.4.0" }
|
||||
bytes = { version = "1.2" }
|
||||
bitcoin = { version = "0.32.5" }
|
||||
bitcoincore-rpc = { version = "0.19.0" }
|
||||
bitcoincore-rpc-json = { version = "0.19.0" }
|
||||
byteorder = { version = "1.5.0" }
|
||||
confy = { version = "0.6.1" }
|
||||
chrono = { version = "0.4.40" }
|
||||
env_logger = { version = "0.11.5" }
|
||||
hex = { version = "0.4.3" }
|
||||
hex-conservative = { version = "0.1.1" }
|
||||
actix-web = { version = "4.9.0" }
|
||||
actix-governor = { version = "0.6.0" }
|
||||
log = { version = "0.4.21" }
|
||||
openssl = { version = "0.10.74", features = ["vendored"] }
|
||||
sha2 = { version = "0.10.8" }
|
||||
serde = { version = "1.0.152", features = ["derive"] }
|
||||
serde_json = { version = "1.0.116" }
|
||||
sqlite = { version = "0.34.0" }
|
||||
regex = { version = "1.10.4" }
|
||||
reqwest = { version = "0.12.24", features = ["json","socks"] }
|
||||
actix-rt = { version = "2.10.0" }
|
||||
tokio = { version = "1", features = ["rt", "net","macros","rt-multi-thread"] }
|
||||
url = { version = "2" }
|
||||
zmq = { version = "0.10.0" }
|
||||
|
||||
# server-only
|
||||
actix-web = { version = "4.9.0", optional = true }
|
||||
actix-governor = { version = "0.6.0", optional = true }
|
||||
actix-rt = { version = "2.10.0", optional = true }
|
||||
chrono = { version = "0.4.40", optional = true }
|
||||
hex-conservative = { version = "0.1.1", optional = true }
|
||||
|
||||
# pusher-only
|
||||
zmq = { version = "0.10.0", optional = true }
|
||||
reqwest = { version = "0.12.24", features = ["json","socks"], optional = true }
|
||||
byteorder = { version = "1.5.0", optional = true }
|
||||
base64 = { version = "0.22.1", optional = true }
|
||||
ed25519-dalek = { version = "2", features = ["pem", "pkcs8"], optional = true }
|
||||
sha2 = { version = "0.10.8" }
|
||||
|
||||
[profile.release]
|
||||
opt-level = "z"
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
strip = true
|
||||
panic = "abort"
|
||||
|
||||
[[bin]]
|
||||
name = "bal-server"
|
||||
@@ -39,4 +54,3 @@ path = "src/bin/bal-server.rs"
|
||||
[[bin]]
|
||||
name = "bal-pusher"
|
||||
path = "src/bin/bal-pusher.rs"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user