On Mon, Apr 12, 2021 at 11:48 AM Ricardo Wurmus <rek...@elephly.net> wrote: > > Hi Guilers, > > this is not quite a release announcement, but the code turns out to be > usable enough that I thought I’d share what I’ve got at this point. > > Guile AWS is a library that lets you talk to Amazon Web Services such as > S3, the Elastic Compute Cloud (EC2), Elastic File System (EFS), Route53 > (Amazon’s DNS server), etc. The implementation is probably more > interesting than the library itself. > > Guile AWS is little more than a language specification for the Guile > compiler tower, which compiles the JSON specification of the AWS APIs to > Scheme. There’s also a bit of inelegant plumbing to actually make > requests to an API endpoint.
Hell yeah, this rules! Years ago I took the same approach to generate a Guile API for CloudFormation (an unreleased experiment) and was hoping that someone would do the same for the entire AWS API. As far as error handling goes, the official AWS SDK for NodeJS may be something to study. It uses asyncs (which is a syntax over simple promises) to allow for threading together multiple API requests together and handle errors without too much headache. Most of the time I use the Ruby SDK, less often the Python SDK (boto3), and in both you just have to catch exceptions or inspect responses yourself, so if that's what you have to do with the guile-aws for the time being then you're still on par with several official SDKs. Those SDKs don't do anything magical with the responses, either, so I consider being given a big ol' deserialized json/xml response in the form of a compound s-exp to be just fine. - Dave