Emil Lerch
c364efd8e8
All checks were successful
AWS-Zig Build / build-zig-0.9-amd64-host (push) Successful in 7m54s
63 lines
2.3 KiB
Markdown
63 lines
2.3 KiB
Markdown
AWS SDK for Zig
|
|
===============
|
|
|
|
[![Build Status](https://actions-status.lerch.org/lobo/aws-sdk-for-zig/build)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=build.yaml&state=closed)
|
|
|
|
**Now that 0.11 has been released, work will commence to move to the new compiler**
|
|
|
|
Current executable size for the demo is 1.7M (90k of which is the AWS PEM file,
|
|
and approximately 600K for XML services) after compiling with -Drelease-safe and
|
|
[stripping the executable after compilation](https://github.com/ziglang/zig/issues/351).
|
|
This is for x86_linux, and will vary based on services used. Tested targets:
|
|
|
|
* x86_64-linux
|
|
* riscv64-linux
|
|
* aarch64-linux
|
|
* x86_64-windows
|
|
* arm-linux
|
|
* aarch64-macos
|
|
* x86_64-macos
|
|
|
|
Tested targets are built, but not continuously tested, by CI.
|
|
|
|
Building
|
|
--------
|
|
|
|
`zig build` should work. It will build the code generation project, run
|
|
the code generation, then build the main project with the generated code.
|
|
|
|
First time build should use `zig build -Dfetch` to fetch dependent packages
|
|
(zfetch and friends).
|
|
|
|
Running
|
|
-------
|
|
|
|
This library mimics the aws c libraries for it's work, so it operates like most
|
|
other 'AWS things'. main.zig gives you a handful of examples for working with services.
|
|
For local testing or alternative endpoints, there's no real standard, so
|
|
there is code to look for `AWS_ENDPOINT_URL` environment variable that will
|
|
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).
|
|
|
|
The [old branch](https://github.com/elerch/aws-sdk-for-zig/tree/aws-crt) exists
|
|
for posterity, and supports x86_64 linux. The old branch is deprecated.
|
|
|
|
Limitations
|
|
-----------
|
|
|
|
WebIdentityToken is not yet implemented.
|
|
|
|
TODO List:
|
|
|
|
* Bump to zig 0.11 and replace zFetch with [std.http.Client](https://github.com/ziglang/zig/blob/master/lib/std/http/Client.zig)
|
|
* Implement sigv4a signing
|
|
* Implement jitter/exponential backoff
|
|
* Implement timeouts and other TODO's in the code
|
|
* Add option to cache signature keys
|
|
* Move CI to github actions based on [gittea's implementation](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
|
|
|
|
Compiler wishlist/watchlist:
|
|
|
|
* [comptime allocations](https://github.com/ziglang/zig/issues/1291) so we can read files, etc (or is there another way)
|