[package] name = "polyfill-rs" version = "0.1.0" edition = "2021" authors = ["Julius Tranquilli "] description = "Production-ready Rust client for Polymarket with HFT optimizations" license = "MIT OR Apache-2.0" repository = "https://github.com/juliustranquilli/polyfill-rs" readme = "README.md" keywords = ["polymarket", "trading", "hft", "crypto", "prediction-markets"] categories = ["api-bindings", "network-programming", "finance"] [dependencies] # Async runtime and futures tokio = { version = "1.41", features = ["full"] } futures = "0.3" futures-util = "0.3" # HTTP client reqwest = { version = "0.12", features = ["json", "stream", "gzip"] } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Ethereum and crypto alloy-primitives = "0.8" alloy-sol-types = { version = "0.8", features = ["eip712-serde", "json"] } alloy-signer = { version = "0.7", features = ["eip712"] } alloy-signer-local = { version = "0.7", features = ["eip712"] } # Numeric types rust_decimal = { version = "1.36", features = ["serde-with-str"] } rust_decimal_macros = "1.36" # Error handling anyhow = "1.0" thiserror = "1.0" # Crypto and encoding base64 = "0.22" hmac = "0.12" sha2 = "0.10" # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # Time handling chrono = { version = "0.4", features = ["serde"] } # Utilities uuid = { version = "1.0", features = ["v4", "serde"] } url = "2.5" bytes = "1.0" rand = "0.8" # Optional WebSocket support for streaming tokio-tungstenite = { version = "0.21", optional = true, features = ["native-tls"] } [dev-dependencies] criterion = { version = "0.5", features = ["html_reports"] } tokio-test = "0.4" mockito = "1.0" proptest = "1.0" env_logger = "0.10" [features] default = ["stream"] stream = ["tokio-tungstenite"] [[bench]] name = "book_updates" harness = false [[bench]] name = "fill_processing" harness = false [profile.release] # Optimizations for HFT performance opt-level = 3 lto = true codegen-units = 1 panic = "abort" [profile.dev] # Faster compilation for development opt-level = 1 [profile.test] # Optimizations for test performance opt-level = 2 debug = true