[package]
name = "force"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Production-ready Salesforce Platform API client with REST and Bulk API 2.0 support"
keywords = ["salesforce", "api", "rest", "bulk", "crm"]
categories = ["api-bindings", "web-programming"]
documentation = "https://docs.rs/force"
homepage = "https://github.com/madmax983/force-rs"
readme = "../../README.md"
[lints]
workspace = true
[dependencies]
tokio = { workspace = true }
reqwest = { workspace = true, features = ["stream"] }
serde = { workspace = true }
serde_json = { workspace = true }
chrono = { workspace = true }
thiserror = { workspace = true }
secrecy = { workspace = true }
base64 = { workspace = true }
url.workspace = true
tracing = { workspace = true }
futures = { workspace = true }
async-trait = { workspace = true }
bytes = { workspace = true }
percent-encoding = { workspace = true }
jsonwebtoken = { workspace = true, optional = true }
csv = { workspace = true, optional = true }
wiremock = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
getrandom = { workspace = true, optional = true }
uuid = { version = "1", features = ["v4"], optional = true }
quick-xml = { workspace = true, optional = true }
[dev-dependencies]
loom = "0.7"
tokio-test = "0.4"
anyhow = { workspace = true }
wiremock = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
proptest = "1.5"
criterion = { workspace = true }
[features]
default = ["rest"]
files = ["rest", "reqwest/multipart"]
rest = []
tooling = []
bulk = ["dep:csv"]
composite = ["rest"]
composite_graph = ["composite"]
schema = ["rest"]
data_utility = ["composite"]
jwt = ["dep:jsonwebtoken"]
username_password = []
auth_code = ["dep:sha2", "dep:getrandom"]
mock = ["dep:wiremock"]
ui = []
graphql = []
data_cloud = []
apex_rest = []
cpq = ["apex_rest"]
consent = []
models = []
agent_api = ["dep:uuid"]
agentforce = ["models", "agent_api"]
account_engagement = []
analytics = []
soap = ["dep:quick-xml"]
bench-internals = ["soap"]
full = ["rest", "files", "bulk", "composite", "tooling", "jwt", "auth_code", "ui", "graphql", "data_cloud", "apex_rest", "consent", "models", "agent_api", "account_engagement", "analytics", "soap"]
all = ["full", "schema", "data_utility", "composite_graph", "cpq"]
[[example]]
name = "query_plan"
required-features = ["rest"]
[[example]]
name = "data_dictionary"
required-features = ["schema"]
[[example]]
name = "generate_struct"
required-features = ["schema"]
[[example]]
name = "soql_mass_op"
required-features = ["composite"]
[[example]]
name = "tooling"
required-features = ["tooling"]
[[example]]
name = "ui_api"
required-features = ["ui"]
[[example]]
name = "graphql"
required-features = ["graphql"]
[[example]]
name = "auth_code_pkce"
required-features = ["auth_code"]
[[bench]]
name = "soap_bench"
harness = false
required-features = ["soap", "bench-internals"]