[package]
name = "rustrade-execution"
version = "0.2.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
documentation = "https://docs.rs/rustrade-execution/"
readme = "README.md"
description = "Stream private account data from financial venues, and execute (live or mock) orders."
[features]
default = []
alpaca = [
"dep:reqwest",
"dep:serde_json",
"serde_json/raw_value",
"dep:lru",
"dep:parking_lot",
"dep:indexmap",
]
binance = [
"dep:binance-sdk",
"dep:serde_json",
"dep:anyhow",
"dep:lru",
"dep:parking_lot",
]
ibkr = ["dep:ibapi", "dep:parking_lot", "dep:chrono-tz", "rustrade-instrument/ibkr"]
hyperliquid = [
"dep:hyperliquid_rust_sdk",
"dep:ethers",
"dep:tokio-util",
"dep:uuid",
]
[dependencies]
rustrade-integration = { workspace = true, features = [
"collection",
"error",
"stream",
] }
rustrade-instrument = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true, features = ["sync", "macros", "rt-multi-thread"] }
tokio-stream = { workspace = true, features = ["sync"] }
futures = { workspace = true }
smol_str = { workspace = true }
fnv = { workspace = true }
indexmap = { workspace = true, optional = true }
rust_decimal = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true, features = ["derive"] }
rand = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
itertools = { workspace = true }
derive_more = { workspace = true, features = [
"constructor",
"from",
"display",
] }
reqwest = { workspace = true, optional = true }
binance-sdk = { version = "=48.0.1", features = ["spot"], optional = true }
anyhow = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
lru = { workspace = true, optional = true }
parking_lot = { workspace = true, optional = true }
ibapi = { version = "=2.12.0", optional = true, default-features = false, features = [
"sync",
] }
chrono-tz = { workspace = true, optional = true }
hyperliquid_rust_sdk = { version = "0.6", optional = true }
ethers = { version = "2.0", optional = true, default-features = false }
tokio-util = { version = "0.7", optional = true }
uuid = { version = "1.0", optional = true }
[dev-dependencies]
tokio = { workspace = true, features = ["test-util"] }
wiremock = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
rust_decimal_macros = { workspace = true }
serde_json = { workspace = true }
serial_test = { workspace = true }
[[example]]
name = "hyperliquid_execution"
required-features = ["hyperliquid"]
[[example]]
name = "hyperliquid_spot_execution"
required-features = ["hyperliquid"]
[[example]]
name = "ibkr_execution"
required-features = ["ibkr"]