For giggles, I decided to take a stab at getting as much of boto working under requests (
) as I could in one night. I was pleasantly surprised at how quickly this progressed, and figured I'd mention the effort on here for others to look and/or help with.
https://github.com/boto/boto/tree/requests_refactor
Cool things:
* Removed boto's connection pooler. This is built into the requests module, and is 100% automatic. -300 lines.
* Headers and a few other things are greatly simplified.
* It looks like we'd be able to nuke a ton of SSL gunk that was previously needed to play nicely with httplib.
What works:
* sdb
* sqs
* parts of s3
* Maybe some others? Hard to tell with our test coverage.
What doesn't:
* S3 uploads. Streaming uploads was a bit of custom work. Should be easy to restore via requests, just haven't had time. A lot of the other operations work, though.
* DynamoDB. Ran into a weird header issue with the session tokens. Not sure what's going on here.
* Others? - Didn't let the unit tests run all the way through.
* proxy support. I think this will be a lot more simple with requests.
This is merely an experimental branch, and I'll try to keep it up to date with master. If we end up liking how this progresses, perhaps we can consider it seriously. I don't think it'd take a huge amount of work to get all of the tests passing again. It's mostly little stuff. If you use or are intimate with a boto module or two, give this a shot and fix any problems you encounter.