force 0.2.0

Production-ready Salesforce Platform API client with REST and Bulk API 2.0 support
Documentation
[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]
# Core dependencies (always compiled)
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 }

# Feature-gated dependencies
jsonwebtoken = { workspace = true, optional = true }
csv = { workspace = true, optional = true }
wiremock = { 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"

[features]
default = ["rest"]
files = ["rest"]

# Platform API surfaces
rest = []
tooling = []
bulk = ["dep:csv"]
composite = ["rest"]
composite_graph = ["composite"]

# Capability surfaces
schema = ["rest"]
data_utility = ["composite"]

# Auth flows
jwt = ["dep:jsonwebtoken"]
username_password = []

# Testing utilities
mock = ["dep:wiremock"]

# UI API surface
ui = []

# GraphQL API surface
graphql = []

# Data Cloud API surface
data_cloud = []

# Apex REST API surface (custom Apex REST endpoints)
apex_rest = []

# Salesforce CPQ API surface
cpq = ["apex_rest"]

# Consent & Portability API surface (GDPR/CCPA)
consent = []

# Meta features
full = ["rest", "files", "bulk", "composite", "tooling", "jwt", "ui", "graphql", "data_cloud", "apex_rest", "consent"]
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"]