[package]
name = "dukascopy-fx"
version = "0.5.1"
edition = "2021"
rust-version = "1.83"
authors = ["Jakub Kluzniak <kluzniakkuba@gmail.com>"]
description = "Library-first Dukascopy market-data fetcher for FX, metals, indices, and equities with ticker API, incremental checkpoints, and universe catalog support."
license = "MIT"
repository = "https://github.com/Kluzko/dukascopy-fx"
keywords = ["dukascopy", "market-data", "forex", "trading", "quant"]
categories = ["api-bindings", "finance"]
readme = "README.md"


[dependencies]
tokio = { version = "1.36", features = ["macros", "rt-multi-thread", "sync", "time"] }
reqwest = { version = "0.11", features = ["json"] }
chrono = { version = "0.4", features = ["serde"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.8"
csv = "1.3"
quick-xml = "0.37"
scraper = "0.20"
arrow = { version = "53.3", optional = true }
parquet = { version = "53.3", features = ["arrow"], optional = true }
rust_decimal = "1.32"
byteorder = "1.4"
lzma-rs = "0.3"
lru = "0.13.0"
futures = "0.3"
parking_lot = "0.12"
smol_str = { version = "0.2", features = ["serde"] }
log = { version = "0.4", optional = true }
env_logger = { version = "0.11", optional = true }
thiserror = "2.0.11"

[features]
default = ["logging"]
logging = ["log", "env_logger"]
sinks-parquet = ["dep:arrow", "dep:parquet"]

[[bin]]
name = "fx_fetcher"
path = "src/bin/fx_fetcher.rs"


[dev-dependencies]
env_logger = "0.11"
serial_test = "3.2"
criterion = "0.5"

[[bench]]
name = "core_benchmarks"
harness = false
