[package]
edition = "2021"
rust-version = "1.88"
name = "polymarket-client"
version = "0.1.2"
build = false
include = [
"src/**/*",
"Cargo.toml",
"README.md",
"LICENSE",
"examples/**/*",
"tests/**/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Unified Polymarket Rust SDK — discovery, market data, trading, and websockets"
homepage = "https://github.com/defidevrel/polymarket-rs-sdk"
documentation = "https://docs.rs/polymarket-client"
readme = "README.md"
keywords = [
"polymarket",
"prediction-market",
"trading",
"api",
]
categories = [
"api-bindings",
"web-programming::http-client",
]
license = "MIT"
repository = "https://github.com/defidevrel/polymarket-rs-sdk"
[package.metadata.docs.rs]
all-features = true
[features]
account = ["dep:polymarket_client_sdk_v2"]
default = []
secure = [
"account",
"websockets",
"dep:polymarket_client_sdk_v2",
"dep:alloy",
"dep:rust_decimal",
"dep:secrecy",
"dep:uuid",
"dep:chrono",
]
websockets = [
"dep:polymarket_client_sdk_v2",
"dep:tokio-tungstenite",
"dep:rustls",
]
[lib]
name = "polymarket_client"
path = "src/lib.rs"
[[example]]
name = "account"
path = "examples/account.rs"
required-features = ["secure"]
[[example]]
name = "hybrid_server"
path = "examples/hybrid_server.rs"
required-features = ["secure"]
[[example]]
name = "quickstart"
path = "examples/quickstart.rs"
[[example]]
name = "trading"
path = "examples/trading.rs"
required-features = ["secure"]
[[example]]
name = "websocket"
path = "examples/websocket.rs"
required-features = ["websockets"]
[[test]]
name = "account_integration"
path = "tests/account_integration.rs"
required-features = ["secure"]
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "secure_integration"
path = "tests/secure_integration.rs"
required-features = ["secure"]
[[test]]
name = "websocket_integration"
path = "tests/websocket_integration.rs"
required-features = ["websockets"]
[dependencies.alloy]
version = "1.6"
features = [
"signers",
"signer-local",
"providers",
"contract",
]
optional = true
default-features = false
[dependencies.async-stream]
version = "0.3"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.polymarket-bindings]
version = "0.1.2"
[dependencies.polymarket-types]
version = "0.1.2"
[dependencies.polymarket_client_sdk_v2]
version = "=0.6.0-canary.1"
features = [
"clob",
"data",
"ctf",
"ws",
"rtds",
]
optional = true
default-features = false
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
default-features = false
[dependencies.rust_decimal]
version = "1"
features = ["serde"]
optional = true
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
]
optional = true
default-features = false
[dependencies.secrecy]
version = "0.10"
features = ["serde"]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
]
[dependencies.tokio-tungstenite]
version = "0.26"
features = [
"connect",
"rustls-tls-webpki-roots",
]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2"
[dependencies.uuid]
version = "1"
features = [
"serde",
"v4",
]
optional = true
[dev-dependencies.axum]
version = "0.8"
features = ["json"]
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"macros",
"rt-multi-thread",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
[lints.clippy]
assigning_clones = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
derive_partial_eq_without_eq = "allow"
doc_markdown = "allow"
items_after_statements = "allow"
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
needless_pass_by_value = "allow"
redundant_clone = "allow"
too_many_lines = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"