update README
Some checks failed
AWS-Zig Build / build-zig-0.11.0-amd64-host (push) Failing after 3m25s
Some checks failed
AWS-Zig Build / build-zig-0.11.0-amd64-host (push) Failing after 3m25s
This commit is contained in:
parent
779d940849
commit
26adee27e6
52
README.md
52
README.md
|
@ -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:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user