update README
Some checks failed
AWS-Zig Build / build-zig-0.11.0-amd64-host (push) Failing after 3m25s

This commit is contained in:
Emil Lerch 2023-08-27 12:12:04 -07:00
parent 779d940849
commit 26adee27e6
Signed by: lobo
GPG Key ID: A7B62D657EF764F8

View File

@ -3,12 +3,8 @@ 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) [![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 980k after compiling with -Doptimize=ReleaseSmall
in x86_linux, and will vary based on services used. Tested targets:
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 * x86_64-linux
* riscv64-linux * riscv64-linux
@ -23,14 +19,25 @@ Tested targets are built, but not continuously tested, by CI.
Building Building
-------- --------
`zig build` should work. It will build the code generation project, run `zig build` should work. It will build the code generation project, fetch model
the code generation, then build the main project with the generated code. files from upstream AWS Go SDK v2, run the code generation, then build the main
project with the generated code. Testing can be done with `zig test`.
First time build should use `zig build -Dfetch` to fetch dependent packages Note that there are some loose ends on this version as compared to the [0.9.0
(zfetch and friends). branch](https://git.lerch.org/lobo/aws-sdk-for-zig/src/branch/0.9.0). More
details below in Limitations. This branch overall is superior, as is the 0.11
compiler, but if you need an edge case and don't want to issue a PR, feel free
to use that branch.
Running Using
------- -----
This is designed for use with the Zig 0.11 package manager, and exposes a module
called "aws". Set up `build.zig.zon` and add the dependency/module to your project
as normal and the package manager should do its thing.
Running the demo
----------------
This library mimics the aws c libraries for it's work, so it operates like most 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. other 'AWS things'. main.zig gives you a handful of examples for working with services.
@ -40,8 +47,10 @@ supersede all other configuration. Note that an alternative endpoint may
require passing in a client option to specify an different TLS root certificate require passing in a client option to specify an different TLS root certificate
(pass null to disable certificate verification). (pass null to disable certificate verification).
The [old branch](https://github.com/elerch/aws-sdk-for-zig/tree/aws-crt) exists An [old branch based on aws-crt](https://github.com/elerch/aws-sdk-for-zig/tree/aws-crt) exists
for posterity, and supports x86_64 linux. The old branch is deprecated. for posterity, and supports x86_64 linux. The old branch is deprecated, so if
there are issues you see that work correctly in the aws-crt branch, please
file an issue.
Limitations Limitations
----------- -----------
@ -50,12 +59,23 @@ WebIdentityToken is not yet implemented.
TODO List: 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) * re-enable all demos. Some are causing compilation errors, and these errors
do not have reference tracing as they exist within monomorphised code
* Implement all demos as tests in src/aws.zig. This has been done for
STS GetCallerIdentity, but needs to be extended for the others
* Json parsing is based on a fork of the 0.9.0 (maybe earlier?) json parser.
Upgrading to 0.11 caused some commenting of things that probably broke some
stuff. JSON parsing in general needs a re-visit. Note also that a json.zig
file is embedded/copied from the codegen project, so that also needs a second
look.
* Take a look to see about compilation speed. With codegen caching this is
reasonable, but still takes longer than needed.
* Upgrade the model files. This is a simple tasks, but I'd like the first
item on this list to be completed first.
* Implement sigv4a signing * Implement sigv4a signing
* Implement jitter/exponential backoff * Implement jitter/exponential backoff
* Implement timeouts and other TODO's in the code * Implement timeouts and other TODO's in the code
* Add option to cache signature keys * 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: Compiler wishlist/watchlist: