Skip to main content

Crate salesforce_core

Crate salesforce_core 

Source
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 jobs
  • toolingapi — Tooling API (managed event subscriptions)
  • pubsubapi — Pub/Sub API gRPC streaming (pulls in tonic)
  • 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).