Repository navigation
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/awsv0.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.0at 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.