Creating an AWS SDK for Pharo Smalltalk

How does AWS manage all its SDKs?

Libraries for other languages aren’t created by hand but instead are generated from data files written in JSON. At it’s heart, all these libraries need to do is construct a HTTP request and process the response. All of the operations for the services are constructed in a similar way however there has been evolution in the protocols used by AWS. There are five different protocols listed in boto that AWS services use to construct queries: ‘json’, ‘ec2’, ‘rest-xml’, ‘rest-json’, ‘query’.

|protocol name| count of services using protocol| |json|114| |ec2|1| |rest-xml|4| |query|19| |rest-json|120|

Unsurprisingly, communicating with JSON is the most popular choice but it is split between json and rest-json. It would appear that the EC2 service is a one-of-a-kind and has it’s own dedicated protocol, which is probably due to it being one of (or the) oldest AWS service.

Creating an AWS service code generator