Hi All,
I wanted to communicate a pull request [1] I've been working on this week for the CouchRest gem. There are a few possibly breaking API changes, so I've bumped the version up to 2.0.0.beta1. Despite only being a PR, I've packaged a gem for convenience.
The change boils down to replacing RestClient with HTTPClient [2] which adds support for:
* Persistent HTTP connections
* Built-in streaming
As a consequence, I've added CouchRest's own exception models for response errors, instead of relying on RestClient. Timeout or Connection errors are still handled directly by HTTPClient which may or may not be a good idea.
Most of the API remains the same, but the recommended approach now is to send requests via a `CouchRest::Server` instance instead of the less efficient `CouchRest#get` and related class methods.
Persistent connections are a big win for performance, especially with SSL, and results with our own system have been positive so far. I've not had time yet to create benchmarks yet.
Finally, I'm also working on CouchRest Model to support the new streaming API with views which is way more efficient than loading massive view result sets into memory.
It'd be great if anyone out there has time to checkout the beta and let me know how it goes before releasing a final version.
Best,
sam
--