[package]
name = "fts-server"
description = "A RESTful flow trading API server"
authors.workspace = true
edition.workspace = true
license.workspace = true
publish.workspace = true
rust-version.workspace = true
version = "0.3.0"

[dependencies]
fts-core = { path = "../fts-core", version = "0.2.0" }
fts-solver = { path = "../fts-solver", version = "0.4.0", features = ["clarabel", "serde"]  }

# Workspace dependencies
rustc-hash = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
thiserror = { workspace = true }
time = { workspace = true, features = ["formatting", "parsing", "serde"] }
tokio = { workspace = true, features = ["full"] }
tracing = { workspace = true }
utoipa = { workspace = true, features = ["axum_extras", "yaml"] }
uuid = { workspace = true, features = ["v4"] }

# Unique dependencies
axum = { version = "0.8", features = ["json", "macros", "query"] }
axum-extra = { version = "0.10", features = ["query", "typed-header"] }
dashmap = { version = "6.1", features = ["inline"] }
jwt-simple = { version = "0.12", default-features=false, features=["pure-rust"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tower-http = { version = "0.6", features = ["cors"] }
utoipa-rapidoc = { version = "6.0", features = ["axum"] }

[dev-dependencies]
http-body-util = "0.1"
tower          = { version = "0.5", features = ["util"] }
axum-test      = "17.3"
fts-sqlite = { path = "../fts-sqlite" }
urlencoding  = "2.1"
rstest       = { workspace = true }
rstest_reuse = { workspace = true }
