From ca801799fc86ae2e75c6152ba79455470162131e Mon Sep 17 00:00:00 2001 From: Emil Lerch Date: Thu, 10 Feb 2022 15:29:51 -0800 Subject: [PATCH] update README with new XML information --- README.md | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 7575cbb..b108750 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,11 @@ [![Build Status](https://drone.lerch.org/api/badges/lobo/aws-sdk-for-zig/status.svg?ref=refs/heads/master)](https://drone.lerch.org/api/badges/lobo/aws-sdk-for-zig/) - -### NOTE: All tests pass, but credentials currently must be passed through environment - This SDK currently supports all AWS services except EC2 and S3. These two -services only support XML, and zig 0.8.0 and master both trigger compile -errors while incorporating the XML parser. S3 also requires some plumbing -tweaks in the signature calculation. Examples of usage are in src/main.zig. +services only support XML, and zig 0.9.0 and master both trigger compile +errors while incorporating the XML parser in conjunction with a process +to fill the types. S3 also requires some plumbing tweaks in the signature +calculation. Examples of usage are in src/main.zig. Current executable size for the demo is 953k (90k of which is the AWS PEM file) after compiling with -Drelease-safe and @@ -43,31 +41,28 @@ supersede all other configuration. Note that an alternative endpoint may require passing in a client option to specify an different TLS root certificate (pass null to disable certificate verification). -Given that credential handling is still very basic, you may want to look at -the [old branch](https://github.com/elerch/aws-sdk-for-zig/tree/aws-crt) if -your needs include something more robust. Note that that branch supports -x86_64 linux only. +The [old branch](https://github.com/elerch/aws-sdk-for-zig/tree/aws-crt) exists +for posterity, and supports x86_64 linux. This branch is recommended moving +forward. ## Limitations There are many nuances of AWS V4 signature calculation. S3 is not supported -because it uses many of these test cases. STS tokens using a session token -are not yet implemented, though should be trivial. I have also seen a few -service errors caused by discrepancies in signatures, though I don't know yet -if this was an issue in the service itself (has not repro'd) or if there -is a latent bug. - -Only environment variable based credentials can be used at the moment. +because it uses many of these test cases. WebIdentityToken is not yet +implemented. TODO List: +* To work around compiler issues, the best option may be to convert from + Xml to json, then parse from there. This will be pursued first. It may need + to wait for zig 0.10.0 when self-hosted compiler is likely to be completed + (zig 0.10.0 eta May 2022) discovered. If we need to wait, S3, EC2 and other + restXml protocols will be blocked. * Implement [AWS restXml protocol](https://awslabs.github.io/smithy/1.0/spec/aws/aws-restxml-protocol.html). Includes S3. Total service count 4. This may be blocked due to the same issue as EC2. * Implement [AWS EC2 query protocol](https://awslabs.github.io/smithy/1.0/spec/aws/aws-ec2-query-protocol.html). Includes EC2. Total service count 1. This may be blocked on a compiler bug, - though has not been tested with zig 0.9.0. It may need to wait for zig 0.10.0 - when self-hosted compiler is likely to be completed (zig 0.10.0 eta May 2022) - discovered. More details and llvm ir log can be found in the + though has not been tested with zig 0.9.0. More details and llvm ir log can be found in the [XML branch](https://git.lerch.org/lobo/aws-sdk-for-zig/src/branch/xml). * Implement sigv4a signing * Implement jitter/exponential backoff