thru-core 0.2.21

Shared implementation for the Thru CLI
[package]
name = "thru-core"
version = "0.2.21"
description = "Shared implementation for the Thru CLI"
license = "Apache-2.0"
repository = "https://github.com/Unto-Labs/thru"
edition = "2024"
keywords = ["thru", "cli", "blockchain", "rpc"]
categories = ["command-line-utilities", "cryptography::cryptocurrencies"]

[dependencies]
# Thru dependencies
thru-client = { version = "0.2.21", path = "../../../thru-client" }
thru-base = { version = "0.2.21", path = "../../../thru-base" }
abi_gen = { package = "thru-abi-gen", version = "0.2.21", path = "../../../abi/abi_gen" }
abi_loader = { package = "thru-abi-loader", version = "0.2.21", path = "../../../abi/abi_loader" }
abi_reflect = { package = "thru-abi-reflect", version = "0.2.21", path = "../../../abi/abi_reflect" }

# CLI framework
clap = { version = "4.4", features = ["derive", "env"] }

# Async runtime
tokio = { version = "1.52", features = ["full"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.9"
serde_yml = "0.0.12"
serde_json = "1.0"

# gRPC types (needed for health checks and error handling)
tonic = { version = "0.14.6", features = ["transport", "tls-aws-lc", "tls-webpki-roots"] }
tonic-health = "0.14.6"

# Error handling
anyhow = "1.0"
thiserror = "2.0"

# Cryptography
hex = "0.4"
sha2 = "0.11"
rand = "0.10.1"
base64 = "0.22"
blst = "0.3"

# System utilities
dirs = "6.0"

# DWARF debug info resolution
addr2line = "0.26"
gimli = "0.33"
object = { version = "0.39", default-features = false, features = ["read", "elf", "std"] }

# Output formatting
colored = "3.1"
chrono = "0.4"

# Pattern matching
regex = "1"

# URL handling
url = "2.5"
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "fmt"] }

# HTTP client for downloading toolchains
reqwest = { version = "0.12", default-features = false, features = ["stream", "json", "charset", "http2", "rustls-tls"] }

# Futures utilities
futures-util = "0.3"

# Archive extraction
tar = "0.4"
flate2 = "1.0"

# Progress indicators
indicatif = "0.18"

[build-dependencies]
serde_json = "1.0"
# Pin versions to avoid vergen-lib conflict (see https://github.com/rustyhorde/vergen/issues/478)
vergen-gitcl = { version = "=9.1.0", features = ["build", "cargo"] }
vergen = "=9.1.0"
vergen-lib = "=9.1.0"

[dev-dependencies]
tokio-test = "0.4"
tempfile = "3.8"
wiremock = "0.6"
assert_matches = "1.5"