[package] name = "polyfill-rs" version = "0.4.1" edition = "2021" authors = ["Julius Tranquilli "] description = "The Fastest Polymarket Client On The Market." license = "MIT OR Apache-2.0" repository = "https://github.com/floor-licker/polyfill-rs" readme = "README.md" keywords = ["polymarket", "clob", "trading", "prediction-market", "crypto"] categories = ["api-bindings", "network-programming"] documentation = "https://docs.rs/polyfill-rs" homepage = "https://github.com/floor-licker/polyfill-rs" [dependencies] # Pin base64ct to avoid Edition 2024 requirement base64ct = "=1.6.0" # Async runtime and futures tokio = { version = "1.41", features = ["full"] } futures = "0.3" futures-util = "0.3" # HTTP client reqwest = { version = "0.13", default-features = false, features = ["json", "query", "stream", "gzip", "rustls", "http2"] } hickory-resolver = "0.26" # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" simd-json = "0.13" dotenvy = "0.15" # Ethereum and crypto alloy-primitives = "1" alloy-sol-types = { version = "1", features = ["eip712-serde", "json"] } alloy-signer = { version = "1", features = ["eip712"] } alloy-signer-local = { version = "1", 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.11.1" rand = "0.8" parking_lot = "0.12" # Optional WebSocket support for streaming tokio-tungstenite = { version = "0.21", optional = true, features = ["native-tls"] } # Optional benchmark-only dependency for comparing against Polymarket's active Rust SDK. polymarket_client_sdk_v2 = { git = "https://github.com/Polymarket/rs-clob-client-v2", rev = "8ba5008733c3c03e92041eef8b1cb8495dbed718", features = ["clob"], optional = true } [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"] side-by-side-benchmark = [] official-client-benchmark = ["dep:polymarket_client_sdk_v2"] [[example]] name = "side_by_side_benchmark" required-features = ["side-by-side-benchmark"] [[example]] name = "official_client_side_by_side_benchmark" required-features = ["official-client-benchmark"] [[bench]] name = "book_updates" harness = false [[bench]] name = "fill_processing" harness = false [[bench]] name = "comparison_benchmarks" harness = false [[bench]] name = "network_benchmarks" harness = false [[bench]] name = "ws_hot_path" 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