[package]
edition = "2021"
name = "digdigdig3"
version = "0.3.20"
build = false
exclude = [
"**/research/**",
"contributing/**",
"**/AUDIT*.md",
"**/ARCHITECTURE_AUDIT.md",
"**/IMPLEMENTATION*.md",
"**/FIX_SUMMARY.md",
"**/PROBLEM_ANALYSIS.md",
"**/API_TESTING_REPORT.md",
"**/AUTHENTICATION_SETUP.md",
"**/CRYPTO_NO_AUTH.md",
"**/QUICK_START.md",
"**/integration_test_guide.md",
"e2e_smoke_*.txt",
"deep_smoke_*.txt",
"smoke_*.txt",
"*.log",
"e2e_trace*/",
"liq_capture/",
"liq_trace_new/",
"dig3_storage/",
"target/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Unified async Rust API for 47 exchange connectors (REST + WebSocket). The core layer — pure ExchangeHub + connectors. Higher-level builder, persistence, replay, OB tracker live in `digdigdig3-station`."
homepage = "https://github.com/ZENG3LD/digdigdig3"
documentation = "https://docs.rs/digdigdig3"
readme = "README.md"
keywords = [
"exchange",
"trading",
"crypto",
"websocket",
"connector",
]
categories = [
"api-bindings",
"asynchronous",
"web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ZENG3LD/digdigdig3"
[features]
default = ["onchain-evm"]
grpc = [
"dep:tonic",
"dep:prost",
]
k256-signing = [
"dep:k256",
"dep:sha3",
]
onchain-cosmos = ["dep:cosmrs"]
onchain-ethereum = ["onchain-evm"]
onchain-evm = [
"dep:k256",
"dep:sha3",
]
onchain-starknet = ["dep:starknet-crypto"]
starknet = ["onchain-starknet"]
websocket = []
[lib]
name = "digdigdig3"
path = "src/lib.rs"
[[example]]
name = "bitstamp_l3_raw"
path = "examples/bitstamp_l3_raw.rs"
[[example]]
name = "bitstamp_trade_capture"
path = "examples/bitstamp_trade_capture.rs"
[[example]]
name = "bybit_liq_probe"
path = "examples/bybit_liq_probe.rs"
[[example]]
name = "bybit_liq_raw"
path = "examples/bybit_liq_raw.rs"
[[example]]
name = "canonical_demo"
path = "examples/canonical_demo.rs"
[[example]]
name = "e2e_metadata"
path = "examples/e2e_metadata.rs"
[[example]]
name = "e2e_smoke"
path = "examples/e2e_smoke.rs"
[[example]]
name = "exchange_hub_demo"
path = "examples/exchange_hub_demo.rs"
[[example]]
name = "feed_demo"
path = "examples/feed_demo.rs"
[[example]]
name = "full_smoke"
path = "examples/full_smoke.rs"
[[example]]
name = "hl_spot_kline_probe"
path = "examples/hl_spot_kline_probe.rs"
[[example]]
name = "hl_spot_wire_probe"
path = "examples/hl_spot_wire_probe.rs"
[[example]]
name = "liq_capture"
path = "examples/liq_capture.rs"
[[example]]
name = "pool_dispatch"
path = "examples/pool_dispatch.rs"
[[example]]
name = "symbolinfo_raw_e2e"
path = "examples/symbolinfo_raw_e2e.rs"
[[test]]
name = "bingx_ws_live"
path = "tests/bingx_ws_live.rs"
[[test]]
name = "bitfinex_ws_live"
path = "tests/bitfinex_ws_live.rs"
[[test]]
name = "crypto_com_ws_live"
path = "tests/crypto_com_ws_live.rs"
[[test]]
name = "dydx_ws_live"
path = "tests/dydx_ws_live.rs"
[[test]]
name = "gateio_ws_live"
path = "tests/gateio_ws_live.rs"
[[test]]
name = "gemini_ws_live"
path = "tests/gemini_ws_live.rs"
[[test]]
name = "htx_ws_live"
path = "tests/htx_ws_live.rs"
[[test]]
name = "kucoin_ws_live"
path = "tests/kucoin_ws_live.rs"
[[test]]
name = "lighter_timeout"
path = "tests/lighter_timeout.rs"
[[test]]
name = "lighter_ws_live"
path = "tests/lighter_ws_live.rs"
[[test]]
name = "live_regression_baseline"
path = "tests/live_regression_baseline.rs"
[[test]]
name = "live_ws_event_rates"
path = "tests/live_ws_event_rates.rs"
[[test]]
name = "reconnect_survival"
path = "tests/reconnect_survival.rs"
[[test]]
name = "rest_override"
path = "tests/rest_override.rs"
[[test]]
name = "silent_watchdog"
path = "tests/silent_watchdog.rs"
[[test]]
name = "upbit_ws_live"
path = "tests/upbit_ws_live.rs"
[[test]]
name = "wasm_smoke"
path = "tests/wasm_smoke.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
[dependencies.bs58]
version = "0.5"
[dependencies.byteorder]
version = "1.5"
[dependencies.chrono]
version = "0.4"
features = [
"std",
"now",
"clock",
]
default-features = false
[dependencies.cosmrs]
version = "0.22"
features = ["bip32"]
optional = true
default-features = false
[dependencies.dashmap]
version = "5.5"
[dependencies.digdigdig3-core]
version = "0.3.20"
[dependencies.flate2]
version = "1.0"
[dependencies.futures-util]
version = "0.3"
[dependencies.hex]
version = "0.4"
[dependencies.hmac]
version = "0.12"
[dependencies.k256]
version = "0.13"
features = [
"ecdsa-core",
"ecdsa",
]
optional = true
[dependencies.lzma-rs]
version = "0.3"
[dependencies.percent-encoding]
version = "2.3"
[dependencies.prost]
version = "0.13"
optional = true
[dependencies.reqwest]
version = "0.12"
features = ["json"]
default-features = false
[dependencies.rust_decimal]
version = "1"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
[dependencies.sha3]
version = "0.10"
optional = true
[dependencies.starknet-crypto]
version = "0.6"
optional = true
[dependencies.thiserror]
version = "1.0"
[dependencies.toml]
version = "0.8"
[dependencies.tonic]
version = "0.12"
features = [
"tls",
"tls-native-roots",
]
optional = true
[dependencies.totp-rs]
version = "5.6"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3.22"
[dependencies.url]
version = "2.5"
[dependencies.urlencoding]
version = "2.1"
[dependencies.uuid]
version = "1.0"
features = ["v4"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.jsonwebtoken]
version = "9.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rand]
version = "0.8"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.reqwest]
version = "0.12"
features = ["rustls-tls"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.ring]
version = "0.17"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls]
version = "0.23"
features = ["ring"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.0"
features = ["full"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-tungstenite]
version = "0.24"
features = ["rustls-tls-webpki-roots"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tokio-test]
version = "0.4"
[target.'cfg(target_arch = "wasm32")'.dependencies.chrono]
version = "0.4"
features = [
"std",
"now",
"wasmbind",
]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.futures-channel]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.2"
features = ["js"]
[target.'cfg(target_arch = "wasm32")'.dependencies.gloo-net]
version = "0.6"
features = ["websocket"]
[target.'cfg(target_arch = "wasm32")'.dependencies.gloo-timers]
version = "0.3"
features = ["futures"]
[target.'cfg(target_arch = "wasm32")'.dependencies.instant]
version = "0.1"
features = ["wasm-bindgen"]
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.tokio]
version = "1.0"
features = [
"sync",
"macros",
"time",
]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.uuid]
version = "1.0"
features = [
"v4",
"js",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
"WebSocket",
"MessageEvent",
"BinaryType",
"CloseEvent",
"ErrorEvent",
"Window",
"Performance",
"Blob",
"FileReader",
]
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
version = "0.3"