Restforce Ruby Gem for Salesforce.com

As one of the committers for the Databasedotcom gem, I follow most of the other committers to see what they are working on. I was pleasantly surprised a few months back when Eric Holmes started pushing code for a project called "Restforce". I nearly fell out of my seat when I read that it was billed as a "lighter weight alternative to the databasedotcom gem".

We'll, we been using it for a couple of months now to build our new CloudSpokes API, and I have to say that it's a pretty impressive gem. Eric has been consistently refactoring and adding features and it extremely responsive. I've submitted a few issues and he's gotten back to me immediately. Check out the repo for complete details but here's a high level overview of the features:

  • A clean and modular architecture using Faraday middleware and Hashie::Mash'd responses. Add your own middleware to Restforce!
  • Multiple OAuth flows.
  • Support for interacting with multiple users from different orgs.
  • Support for parent-to-child relationships.
  • Support for aggregate queries.
  • Optional bang CRUD methods (create, update, upsert, destroy) that raise salesforce.com exceptions
  • Support for the Streaming API with EventMachine
  • Support for blob data types (uploading files)
  • Support for GZIP compression.
  • Support for custom Apex REST endpoints. Winning!!
  • Support for decoding Force.com Canvas signed requests.

He's written a number of sample applications in rails and sinatra so if you are writing ruby app that you would like to integrate with salesforce.com, I would highly recommend you check out Restforce.