[package]
name = "vuke"
version = "0.9.0"
edition = "2021"
authors = ["oritwoen"]
description = "Research tool for studying vulnerable Bitcoin key generation practices"
license = "MIT"
repository = "https://github.com/oritwoen/vuke"
keywords = ["bitcoin", "security", "research", "brainwallet", "vulnerability"]
categories = ["cryptography", "command-line-utilities"]
[features]
default = []
gpu = ["wgpu", "pollster", "bytemuck"]
storage = ["parquet", "arrow"]
storage-query = ["storage", "duckdb", "comfy-table"]
storage-cloud = ["storage", "object_store", "tokio", "async-trait", "futures"]
storage-iceberg = ["storage-cloud", "iceberg", "iceberg-catalog-rest"]
boha = ["dep:boha"]
[dependencies]
anyhow = "1.0"
clap = { version = "4.5", features = ["derive", "env"] }
rayon = "1.10"
indicatif = "0.17"
hex = "0.4"
chrono = "0.4"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
sha2 = "0.10"
md-5 = "0.10"
hmac = "0.12"
secp256k1 = { version = "0.29", features = ["global-context"] }
bitcoin = { version = "0.32", features = ["rand"] }
rand_mt = "4.2"
num-bigint = "0.4"
base64 = "0.22"
wgpu = { version = "24", optional = true }
pollster = { version = "0.4", optional = true }
bytemuck = { version = "1.21", features = ["derive"], optional = true }
parquet = { version = "56", optional = true, features = ["arrow", "zstd"] }
arrow = { version = "56", optional = true }
duckdb = { version = "1.4", optional = true, features = ["bundled"] }
comfy-table = { version = "7", optional = true }
object_store = { version = "0.11", optional = true, features = ["aws"] }
tokio = { version = "1", optional = true, features = ["rt-multi-thread", "sync", "time"] }
async-trait = { version = "0.1", optional = true }
futures = { version = "0.3", optional = true }
iceberg = { version = "0.7", optional = true }
iceberg-catalog-rest = { version = "0.7", optional = true }
boha = { version = "0.11", optional = true }
[dev-dependencies]
tempfile = "3.10"
criterion = { package = "codspeed-criterion-compat", version = "4.1" }
testcontainers = "0.23"
testcontainers-modules = { version = "0.11", features = ["minio"] }
[[bin]]
name = "vuke"
path = "src/main.rs"
[[bench]]
name = "transforms"
harness = false
[[bench]]
name = "derivation"
harness = false
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true