Files
2026-06-30 21:11:47 -04:00

126 lines
3.1 KiB
TOML

[package]
name = "polyfill-rs"
version = "0.4.3"
edition = "2021"
authors = ["Julius Tranquilli <jtranqs@gmail.com>"]
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"] }
# 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 = { version = "0.6.0-canary.1", 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