A Ruby client for the Salesforce REST API with support for streaming, composite APIs, and multiple authentication methods.
Restforce is a Ruby client library for the Salesforce REST API that enables developers to interact with Salesforce data and services from Ruby applications. It provides a clean, object-oriented interface for performing CRUD operations, running SOQL queries, and leveraging advanced Salesforce APIs like Streaming and Composite. The gem handles authentication, API versioning, and error handling, simplifying Salesforce integration workflows.
Ruby developers building applications that need to integrate with Salesforce, including internal business tools, customer portals, or data synchronization systems. It's particularly useful for teams working with multiple Salesforce orgs or requiring real-time updates via the Streaming API.
Developers choose Restforce for its comprehensive Salesforce API coverage, elegant Ruby-centric API design, and robust support for advanced features like streaming and composite batch operations. Its modular architecture based on Faraday allows for easy customization and middleware integration.
A Ruby client for the Salesforce REST API.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports all major Salesforce REST APIs including Streaming, Composite, Tooling, and GetUpdated, enabling complex operations like real-time updates and batch processing as detailed in the README.
Offers OAuth with token refresh, username/password, JWT, and client credentials flow, adaptable for multi-tenant apps or single org integrations with automatic reauthentication middleware.
Built on Faraday middleware, allowing easy customization with caching, logging, and instrumentation, and returns Hashie::Mash objects for intuitive data manipulation.
Includes support for file uploads via Blob Data, aggregate queries, and custom Apex endpoints, providing a robust toolset for deep Salesforce integration workflows.
Latest versions require Ruby 3.1.0+, forcing upgrades for teams on older Ruby versions and limiting compatibility with legacy applications, as outlined in the installation notes.
Client objects are not thread-safe, as the README explicitly warns against reusing them across threads, restricting use in multi-threaded environments without careful management.
Lacks automatic caching for JWT Bearer tokens, risking Salesforce rate limits if the client is frequently instantiated, requiring custom caching logic as admitted in the README.