diff --git a/README.md b/README.md index cfb703a..73fef11 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ AWS SDK for Zig =============== -[Zig 0.13](https://ziglang.org/download/#release-0.13.0): +[Zig 0.14](https://ziglang.org/download/#release-0.14.0): -[![Build Status: Zig 0.13.0](https://git.lerch.org/lobo/aws-sdk-for-zig/actions/workflows/build.yaml/badge.svg)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=build.yaml&state=closed) +[![Build Status: Zig 0.14.0](https://git.lerch.org/lobo/aws-sdk-for-zig/actions/workflows/build.yaml/badge.svg)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=build.yaml&state=closed) [Last Mach Nominated Zig Version](https://machengine.org/about/nominated-zig/): @@ -13,12 +13,13 @@ AWS SDK for Zig [![Build Status: Zig Nightly](https://git.lerch.org/lobo/aws-sdk-for-zig/actions/workflows/zig-nightly.yaml/badge.svg)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=zig-nightly.yaml&state=closed) -**NOTE ON BUILD STATUS**: The nightly/mach nominated version of this currently -panics under CI, but I have not yet reproduced this panic. Running manually on -multiple machines appears to be working properly +[Zig 0.13](https://ziglang.org/download/#release-0.13.0): + +[![Build Status: Zig 0.13.0](https://git.lerch.org/lobo/aws-sdk-for-zig/actions/workflows/zig-previous.yaml/badge.svg)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=zig-previous.yaml&state=closed) + 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: +in x86_64-linux, and will vary based on services used. Tested targets: * x86_64-linux * riscv64-linux @@ -30,22 +31,38 @@ in x86_linux, and will vary based on services used. Tested targets: Tested targets are built, but not continuously tested, by CI. -Zig-Develop Branch ------------------- +Branches +-------- -This branch is intended for use with the in-development version of Zig. This -starts with 0.12.0-dev.3180+83e578a18. This is aligned with [Mach Engine's Nominated -Zig Versions](https://machengine.org/about/nominated-zig/). Nightly zig versions -are difficult to keep up with and there is no special effort made there, build -status is FYI (and used as a canary for nominated zig versions). +* **master**: This branch tracks the latest released zig version +* **zig-0.13**: This branch tracks the previous released zig version (0.13 currently). + Support for the previous version is best effort, generally + degrading over time. Fixes will generally appear in master, then + backported into the previous version. +* **zig-mach**: This branch tracks the latest mach nominated version. A separate + branch is necessary as mach nominated is usually, but not always, + more recent than the latest production zig. Support for the mach + version is best effort. +* **zig-develop**: This branch tracks zig nightly, and is used mainly as a canary + for breaking changes that will need to be dealt with when + a new mach nominated version or new zig release appear. + Expect significant delays in any build failures. + +Other branches/tags exist but are unsupported Building -------- `zig build` should work. It will build the code generation project, fetch model 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`. +project with the generated code. Testing can be done with `zig build test`. Note that +this command tests on all supported architectures, so for a faster testing +process, use `zig build smoke-test` instead. +To make development even faster, a build option is provided to avoid the use of +LLVM. To use this, use the command `zig build -Dno-llvm smoke-test`. This +can reduce build/test time 300%. Note, however, native code generation in zig +is not yet complete, so you may see errors. Using ----- @@ -53,7 +70,8 @@ Using This is designed for use with the Zig 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. A full example can be found -in [/example](example/README.md). +in [/example](example/build.zig.zon). This can also be used at build time in +a downstream project's `build.zig`. Configuring the module and/or Running the demo ---------------------------------------------- @@ -61,8 +79,8 @@ Configuring the module and/or Running the demo This library mimics the aws c libraries for it's work, so it operates like most other 'AWS things'. [/src/main.zig](src/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. +no real standard, so there is code to look for an environment variable +`AWS_ENDPOINT_URL` variable that will supersede all other configuration. Limitations ----------- @@ -83,13 +101,6 @@ TODO List: * Implement timeouts and other TODO's in the code * Add option to cache signature keys -Services without TLS 1.3 support --------------------------------- - -All AWS services should support TLS 1.3 at this point, but there are many regions -and several partitions, and not all of them have been tested, so your mileage -may vary. If something doesn't work, please submit an issue to let others know. - Dependency tree ---------------