Skip to content

v0.1.0

Latest

Choose a tag to compare

@josephspurrier josephspurrier released this 05 Nov 13:33
· 152 commits to main since this release

v0.1.0: the first release

A community AWS SDK for Xo, generated from AWS's published Smithy models.
Not affiliated with or endorsed by Amazon Web Services.

What is in it

  • The core module github.com/xo-lang/aws v0.1.0: SigV4 and SigV4a
    signing; credentials from static values, the environment, and shared
    config and credentials files, including assume role through
    source_profile (web identity, SSO, ECS, EC2 instance metadata and
    credential_process come in a later release: on EC2, ECS or EKS, or
    with an SSO login, pass credentials through environment variables for
    now; Lambda sets them); retries with the standard retry quota, the
    endpoint rules engine, the six AWS protocols, event streams,
    paginators, waiters and presigned URLs.
  • A module for each of the 435 services AWS publishes, each tagged
    service/<name>/v0.1.0 at the same commit. Require only the ones you
    use.
  • The behavior the other AWS SDKs write by hand, listed in
    docs/customizations.md with a test for each: flexible checksums (CRC32
    by default where S3 supports one, response validation on GetObject),
    S3 Express One Zone sessions, account ID endpoints, endpoint discovery,
    cross-region presigned URLs for RDS, Neptune, DocumentDB and EC2,
    bearer tokens for Bedrock API keys, the paginators aws-sdk-go-v2 writes
    by hand, errors in S3's 200 responses, Route 53 id trimming, and more.

Tested

  • AWS's Smithy protocol compliance tests (741 cases), the SigV4 and
    SigV4a suites, every model's endpoint rule tests, the JMESPath
    compliance suite, and the event stream codec vectors.
  • LocalStack: S3 (signatures checked), DynamoDB, SQS, SNS, STS, Secrets
    Manager, Lambda, EC2 and Kinesis.
  • Real AWS, 2026-11-04: S3 (including multipart, presigned URLs and a
    Multi-Region Access Point over SigV4a), DynamoDB, SQS, SNS, STS,
    Secrets Manager, EC2, Kinesis SubscribeToShard, Polly into Transcribe
    Streaming, and Lambda InvokeWithResponseStream.
  • Real AWS, 2026-11-05 (ca-central-1): one free read call for each of
    366 services. 243 succeeded, and every other answer (not offered in
    the region, access, opt-in, or input the service wants) parsed into
    the operation's typed error. No call failed to sign or decode.

Requirements

Xo 0.39.0 or later. On arm64, build programs that use MediaConvert or
WAFV2 with --backend=llvm (two native backend bugs). Two more
exceptions: a program that uses DynamoDB
together with select needs Xo 0.40 (or main at or after 5dd0b3f4e),
and this repository's own tests need main at or after 0e1d7b177. With
0.39.0, if the first native build of a program fails to link with
duplicate symbol _xo_f_zero__val_..., build again or set
XO_BACKEND_CACHE=off (fixed on Xo main at 842702e6d).

Install

require github.com/xo-lang/aws v0.1.0
require github.com/xo-lang/aws/service/s3 v0.1.0

or xo get github.com/xo-lang/aws/service/s3@v0.1.0. See docs/usage.md.

Not yet handled

Listed in docs/customizations.md with the next step for each: S3
trailing checksums for unsized streams (aws-chunked), the S3 presigned
POST (on a branch, its LocalStack upload still failing), Expect: 100-continue, user agent metrics, and the
AWS_REQUEST_CHECKSUM_CALCULATION and AWS_RESPONSE_CHECKSUM_VALIDATION
settings.

Licensed under Apache-2.0.