Crate salesforce_client

Crate salesforce_client 

Source
Expand description

ยงSalesforce API Client - Enterprise Edition

A production-grade, type-driven Salesforce REST API client library for Rust.

ยงFeatures

  • ๐Ÿ” OAuth 2.0 Authentication: Automatic token refresh
  • ๐Ÿ“„ Automatic Pagination: Handle large result sets transparently
  • ๐Ÿ” Retry Logic: Exponential backoff for transient failures
  • โšก Caching: Reduce API calls with intelligent caching
  • ๐Ÿšฆ Rate Limiting: Respect Salesforce API limits
  • ๐Ÿ“ CRUD Operations: Create, Read, Update, Delete
  • ๐Ÿ—๏ธ Query Builder: Type-safe SOQL construction
  • ๐Ÿ“Š Comprehensive Logging: Built-in tracing support
  • ๐ŸŽฏ Type Safety: Generic methods with compile-time guarantees

ยงQuick Start

use salesforce_client::{SalesforceClient, ClientConfig, SfError};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Deserialize, Serialize)]
struct Account {
    #[serde(rename = "Id")]
    id: String,
    #[serde(rename = "Name")]
    name: String,
}

#[tokio::main]
async fn main() -> Result<(), SfError> {
    // Initialize with configuration
    let config = ClientConfig::new(
        "https://your-instance.salesforce.com",
        "your_access_token",
    );
     
    let client = SalesforceClient::new(config);

    // Query with automatic pagination and caching
    let accounts: Vec<Account> = client
        .query("SELECT Id, Name FROM Account LIMIT 10")
        .await?;

    Ok(())
}

Re-exportsยง

pub use auth::AccessToken;
pub use auth::OAuthCredentials;
pub use auth::TokenManager;
pub use cache::CacheConfig;
pub use cache::QueryCache;
pub use crud::InsertResponse;
pub use crud::UpdateResponse;
pub use crud::UpsertBuilder;
pub use error::SfError;
pub use error::SfResult;
pub use pagination::PaginatedQuery;
pub use pagination::QueryOptions;
pub use query_builder::CountQueryBuilder;
pub use query_builder::QueryBuilder;
pub use query_builder::SubqueryBuilder;
pub use rate_limit::RateLimitConfig;
pub use rate_limit::RateLimiter;
pub use retry::RetryConfig;

Modulesยง

auth
OAuth 2.0 authentication module
cache
Caching layer for frequently accessed data
crud
CRUD operations (Create, Read, Update, Delete)
error
Error types for the Salesforce client
pagination
Automatic pagination support for large query results
query_builder
Type-safe SOQL query builder
rate_limit
Rate limiting to respect Salesforce API limits
retry
Retry logic with exponential backoff

Structsยง

ClientConfig
Client configuration builder
SalesforceClient
Enterprise-grade Salesforce API client