Expand description
Unofficial Rust SDK for the Salesforce API.
This crate provides comprehensive support for Salesforce APIs including:
- OAuth2 authentication (client credentials and username-password flows)
- Pub/Sub API for real-time event streaming via gRPC
- Bulk API 2.0 for high-performance query and ingest operations
- REST API for SObject CRUD operations
- Tooling API for metadata and Change Data Capture subscriptions
§Quick Start
§Authentication
use salesforce_core::client::{self, Credentials};
let auth_client = client::Builder::new()
.credentials(Credentials {
client_id: "...".to_string(),
client_secret: Some("...".to_string()),
username: None,
password: None,
instance_url: "https://your-instance.salesforce.com".to_string(),
tenant_id: "...".to_string(),
})
.build()?
.connect()
.await?;See module-level docs for per-API examples: restapi, bulkapi,
toolingapi, pubsubapi.
§Cargo features
Each API surface is gated behind a feature so applications only pay the compile-time cost of what they use. All four are enabled by default.
restapi— SObject CRUD, search, composite collections (REST API)bulkapi— Bulk API 2.0 query and ingest jobstoolingapi— Tooling API (managed event subscriptions)pubsubapi— Pub/Sub API gRPC streaming (pulls intonic)trace— adds#[tracing::instrument]spans to client methods
For a slim build, disable defaults and opt in:
salesforce_core = { version = "0.13", default-features = false, features = ["restapi"] }Modules§
- bulkapi
- Salesforce Bulk API 2.0 for querying and ingesting large data sets. Salesforce Bulk API 2.0 for querying and ingesting large data sets.
- client
- OAuth2 client authentication and connection management.
- pubsubapi
- Salesforce Pub/Sub API for real-time event streaming. Salesforce Pub/Sub API for real-time event streaming.
- restapi
- Salesforce REST API for SObject operations, queries, and searches. Salesforce REST API.
- toolingapi
- Salesforce Tooling API for metadata operations. Salesforce Tooling API for metadata operations.
Constants§
- DEFAULT_
API_ VERSION - Default Salesforce API version (Winter ’26 - API version 65.0).
- DEFAULT_
AUTH_ CONNECT_ TIMEOUT_ SECS - Default connection timeout for OAuth2 authentication requests (15 seconds).
- DEFAULT_
AUTH_ REQUEST_ TIMEOUT_ SECS - Default request timeout for OAuth2 authentication requests (30 seconds).
- DEFAULT_
CONNECT_ TIMEOUT_ SECS - Default connection timeout for HTTP requests (30 seconds).
- DEFAULT_
POOL_ IDLE_ TIMEOUT_ SECS - Default connection pool idle timeout (90 seconds).
- DEFAULT_
POOL_ MAX_ IDLE_ PER_ HOST - Default maximum idle connections per host (10).
- DEFAULT_
REQUEST_ TIMEOUT_ SECS - Default request timeout for HTTP requests (120 seconds).
- DEFAULT_
TCP_ KEEPALIVE_ SECS - Default TCP keepalive interval (60 seconds).