[package] name = "hero_websocket_client" version = "0.1.0" edition = "2021" [[bin]] name = "hero_websocket_client" path = "cmd/main.rs" [dependencies] serde = { workspace = true } serde_json = { workspace = true } uuid = { workspace = true } log = { workspace = true } futures-channel = { workspace = true, features = ["sink"] } futures-util = { workspace = true, features = ["sink"] } thiserror = { workspace = true } url = { workspace = true } http = "0.2" # Authentication dependencies hex = { workspace = true } rand = { workspace = true } getrandom = { version = "0.2", features = ["js"] } # Optional crypto dependencies (enabled by default) k256 = { version = "0.13", features = ["ecdsa", "sha256"], optional = true } sha3 = { workspace = true, optional = true } # WASM-specific dependencies [target.'cfg(target_arch = "wasm32")'.dependencies] gloo-net = { version = "0.4.0", features = ["websocket"] } gloo-timers = { version = "0.3.0", features = ["futures"] } wasm-bindgen-futures = "0.4" gloo-console = "0.3.0" wasm-bindgen = "0.2" js-sys = "0.3" web-sys = { version = "0.3", features = ["Request", "RequestInit", "RequestMode", "Response", "Window"] } # Native-specific dependencies [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio-tungstenite = { version = "0.23.1", features = ["native-tls"] } tokio = { workspace = true, features = ["rt", "macros", "time"] } native-tls = "0.2" clap = { workspace = true } env_logger = { workspace = true } dotenv = "0.15" [dev-dependencies] tokio = { workspace = true } # Features [features] default = ["crypto"] crypto = ["k256", "sha3"]