[package]
name = "optionchain_simulator"
version = "0.2.21"
edition = "2024"
rust-version = "1.89"
authors = ["Joaquin Bejar <jb@taunais.com>"]
description = "OptionChain-Simulator is a lightweight REST API service that simulates an evolving option chain with every request. It is designed for developers building or testing trading systems, backtesters, and visual tools that depend on option data streams but want to avoid relying on live data feeds."
license = "MIT"
readme = "README.md"
repository = "https://github.com/joaquinbejar/OptionChain-Simulator"
homepage = "https://github.com/joaquinbejar/OptionChain-Simulator"
keywords = ["finance", "options", "trading"]
categories = ["finance", "data-structures"]
[features]
arrow-export = ["dep:arrow"]
[dependencies]
arrow = { workspace = true, optional = true }
optionstratlib = { workspace = true }
positive = { workspace = true }
tracing = { workspace = true }
rust_decimal = { workspace = true }
rust_decimal_macros = { workspace = true }
serde_json = { workspace = true }
serde = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
chrono-tz = { workspace = true }
clickhouse = { workspace = true }
csv = { workspace = true }
tokio = { workspace = true }
async-trait = { workspace = true }
actix-web = { workspace = true }
redis = { workspace = true }
utoipa = { workspace = true }
utoipa-swagger-ui = { workspace = true }
rand = { workspace = true }
rand_distr = { workspace = true }
prometheus = { workspace = true }
futures = { workspace = true }
mongodb = { workspace = true }
[dev-dependencies]
mockall = { workspace = true }
tempfile = { workspace = true }
once_cell = { workspace = true }
tokio = { workspace = true, features = ["test-util"] }
[workspace]
members = [
"examples/session",
"examples/clickhouse",
"examples/integration",
]
[workspace.dependencies]
optionchain_simulator = { path = "." }
optionstratlib = "0.21"
positive = "0.6"
tracing = "0.1"
rust_decimal = { version = "1.42", features = ["maths", "serde"] }
rust_decimal_macros = "1.40"
serde_json = "1.0"
serde = "1.0"
uuid = { version = "1.26", features = ["v4", "v5", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
chrono-tz = { version = "0.10", features = ["serde"] }
csv = "1.4"
clickhouse = "0.15"
tokio = { version = "1.53", features = ["full"] }
async-trait = "0.1"
actix-web = { version = "4.15", features = ["rustls"] }
redis = { version = "1.6", features = ["tokio-comp", "connection-manager"] }
utoipa = "5.5"
utoipa-swagger-ui = { version = "9.0", features = ["actix-web"] }
rand = "0.10"
rand_distr = "0.6"
prometheus = "0.14"
futures = "0.3"
mongodb = "3.8"
mockall = "0.15"
tempfile = "3.27"
once_cell = "1.21"
arrow = { version = "59.2", default-features = false, features = ["ipc"] }