Skip to main content

Crate cirrus

Crate cirrus 

Source
Expand description

§Cirrus SDK

An ergonomic Rust HTTP client for the Salesforce REST API.

Cirrus provides a type-safe, async interface for interacting with Salesforce while leaving response shapes entirely up to the caller — no hard-coded sObject types like Account or Contact.

§Design principles

  • No user-facing types. The SDK never models org-specific data. Every handler that returns records is generic over a caller-supplied type, and defaults to serde_json::Value when none is specified.
  • Hard-coded platform types only. Schema-independent envelopes (response::QueryResult, response::SObjectCreateResult, response::ApiVersion, the Salesforce error array) are concrete, because their shape is part of the platform contract.
  • Auth is pluggable. Any auth::AuthSession implementation works; handlers don’t know which OAuth flow produced the token.
  • No legacy surface. Anything Salesforce labels deprecated or legacy is intentionally not supported.

§Quick start

use cirrus::{Cirrus, auth::StaticTokenAuth};
use std::sync::Arc;

let auth = Arc::new(StaticTokenAuth::new(
    "00D...!AQ...",
    "https://my-org.my.salesforce.com",
));

let sf = Cirrus::builder()
    .auth(auth)
    .build()?;

let versions = sf.versions().await?;

Re-exports§

pub use auth::AuthSession;
pub use auth::SharedAuth;
pub use handlers::bulk::BulkIngestSpec;
pub use handlers::bulk::BulkQuerySpec;
pub use handlers::composite::BatchRequest;
pub use handlers::composite::BatchSubrequest;
pub use handlers::composite::CompositeRequest;
pub use handlers::composite::CompositeSubrequest;
pub use handlers::sobjects::BlobUploadSpec;
pub use pagination::Records;
pub use retry::RetryPolicy;

Modules§

auth
Authentication abstractions for the Salesforce REST API.
handlers
Handlers for Salesforce REST API surfaces.
pagination
Lazy, runtime-agnostic pagination over Salesforce query results.
retry
Retry policy and backoff machinery for transient HTTP failures.

Structs§

ApiVersion
One entry from GET /services/data — a Salesforce REST API version.
BatchResponse
Top-level response from POST /composite/batch.
BatchSubresult
One sub-request result inside BatchResponse::results.
BulkIngestJob
Response from POST /jobs/ingest and GET /jobs/ingest/{jobId}.
BulkQueryJob
Response from POST /jobs/query and GET /jobs/query/{jobId}.
BulkQueryResults
Result of GET /jobs/query/{jobId}/results.
Bytes
A cheaply cloneable and sliceable chunk of contiguous memory.
Cirrus
The main Salesforce client.
CirrusBuilder
Builder for Cirrus.
CompositeError
Per-record error entry returned inside composite endpoint results (CompositeTreeResult::errors, SObjectCollectionResult::errors).
CompositeResponse
Top-level response from POST /composite.
CompositeSubresponse
One sub-request entry inside CompositeResponse::composite_response.
CompositeTreeResponse
Top-level response from POST /composite/tree/{SObject}.
CompositeTreeResult
One per-record entry in CompositeTreeResponse::results.
DescribeGlobal
Response from GET /sobjects (describe global). Schema-independent platform metadata — concrete because every org returns the same shape.
EventLogFileRecord
One EventLogFile sObject record returned by querying SELECT ... FROM EventLogFile.
ExecuteAnonymousResult
Result envelope from GET /tooling/executeAnonymous?anonymousBody=....
Limit
One limit entry from GET /services/data/vXX.X/limits.
LimitInfo
Snapshot of the Sforce-Limit-Info response header, parsed.
QueryResult
Envelope returned by SOQL queries (/query, /queryAll, /query/{locator}).
SObjectCollectionResult
One per-record entry in the array returned by /composite/sobjects (create / update / upsert / delete).
SObjectCreateResult
Result of a single-record create/upsert via REST sObjects endpoints.
SObjectMetadata
Per-object metadata returned in DescribeGlobal::sobjects. Mirrors the flags Salesforce documents for the describe-global response.
SalesforceError
A single Salesforce API error entry.
SearchResult
Envelope returned by SOSL search endpoints (/search, /parameterizedSearch).

Enums§

BulkColumnDelimiter
CSV column delimiter used in Bulk 2.0 job payloads and result downloads. Salesforce supports a fixed set of single-character delimiters.
BulkJobState
State of a Bulk API 2.0 job.
BulkLineEnding
CSV line ending used in Bulk 2.0 job payloads and result downloads.
BulkOperation
Bulk API 2.0 operation kind. Shared between ingest jobs (insert / update / upsert / delete / hardDelete) and query jobs (query / queryAll).
CirrusError
Errors produced by the Cirrus client.

Constants§

DEFAULT_API_VERSION
Default Salesforce REST API version when the caller doesn’t override it.

Type Aliases§

CirrusResult
Specialized Result type for Cirrus operations.
OrgLimits
Top-level response from GET /limits — keys are limit names.