[package]
name = "alfars"
version = "0.4.1"
edition = "2024"
description = "High-performance factor expression and backtesting library (Rust + PyO3)"
authors = ["EthanNOV56 <yichen_1226@163.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/EthanNOV56/alfa.rs"
homepage = "https://github.com/EthanNOV56/alfa.rs"
keywords = ["quantitative-finance", "trading", "backtesting", "factor-investing", "pyo3"]
categories = ["finance", "science"]
readme = "README.md"

[lib]
name = "alfars"
crate-type = ["cdylib", "rlib"]  # For Python extension and binary

[dependencies]
pyo3 = { version = "0.28", features = ["extension-module"] }
ndarray = "0.15"
rayon = "1.10"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
numpy = "0.28"
rand = "0.8"
ahash = "0.8"
bincode = "2.0"
lru = "0.12"
itertools = "0.13"
sha2 = "0.10"
tempfile = "3.10"

# Factor storage support
lz4 = "1.28"
uuid = { version = "1.0", features = ["v4"] }
toml = "0.8"
dirs = "5"

# Web server (optional, for HTTP API)
axum = "0.7"
tokio = { version = "1", features = ["full"] }
tower-http = { version = "0.5", features = ["cors"] }

# HTTP client for ClickHouse
reqwest = { version = "0.12", features = ["json", "blocking"] }
urlencoding = "2"
dotenv = "0.15"

[build-dependencies]
pyo3-build-config = "0.28"

[[bin]]
name = "alfars-server"
path = "src/bin/server.rs"
