Skip to content
CAI
Software that uses CAICheck a score

zio/zio-aws

58.0

Adequate · 20 September 2026

8k

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a ZIO-based Scala library that provides idiomatic, asynchronous access to AWS services by generating type-safe client code from the official AWS SDK models. It supports multiple HTTP client backends, including Netty, http4s, Akka HTTP, and the AWS Common Runtime, allowing users to configure low-level network behavior and protocol preferences. The library handles core AWS operations such as request execution, streaming data transfer, and pagination, while offering structured error handling and resilience aspects like logging and circuit breaking.

How it got here

2020 — ZIO 2 migration and v7 scaffolding

11 changes.

This period focused on restructuring the project for ZIO AWS v7 by migrating the core runtime to ZIO 2 and upgrading to AWS SDK 2.55.0. The work involved removing legacy code generation components and ZIO 1 abstractions while introducing new HTTP client backends and comprehensive project documentation.

2021–2025 — ZIO 2 and Scala 3 migration with HTTP client expansion

16 changes.

This period focused on rewriting the code generator and core library to support ZIO 2 and Scala 3, introducing a new structured error handling system and a flexible configuration layer. It also expanded HTTP client support by adding implementations for Akka HTTP, Netty, and the AWS Common Runtime, alongside comprehensive integration and unit testing to validate these changes.

Features

Add Akka HTTP client implementation for ZIO AWS

The zio-aws-akka-http module now provides a concrete HTTP client implementation using Akka HTTP, enabling users to interact with AWS services via the Akka ecosystem. This change introduces the AkkaHttpClient component, which wraps the akka-http-spi library to create an SdkAsyncHttpClient backed by an Akka ActorSystem, allowing for configurable connection pool settings and execution contexts within the ZIO layer.

zio-aws-akka-http · high confidence

Add Kinesis stream consumer example

The example3 module now includes a Scala application that demonstrates how to interact with Amazon Kinesis using the ZIO AWS library. The example configures AWS credentials and region, lists existing streams and shards, registers a stream consumer, and subscribes to a shard to read records while also putting a test record into the stream.

examples/example3 · high confidence

Add example demonstrating AWS EC2 and Elastic Beanstalk integration

The \examples/example1\ module now includes a Scala application that demonstrates how to interact with AWS Elastic Beanstalk and EC2 services using the ZIO AWS library. The example retrieves Elastic Beanstalk application and environment details, fetches associated EC2 instance IDs, and prints instance metadata such as type and launch time, providing a concrete reference for users implementing similar AWS service integrations.

examples/example1 · high confidence

Add example demonstrating DynamoDB scan with ZIO AWS aspects

The example2 module now includes a Main.scala file that demonstrates how to perform a full table scan on a DynamoDB table using the ZIO AWS library. The example configures a Netty HTTP client and AWS credentials, then applies ZIO aspects for logging and circuit-breaking resilience to the DynamoDB client layer before executing the scan operation.

examples/example2 · high confidence

Add http4s-based async HTTP client for AWS SDK

The zio-aws-http4s module now provides an asynchronous HTTP client implementation for the AWS SDK using http4s. This includes the Http4sAsyncHttpService class which registers via the Java Service Provider Interface (SPI) to act as the underlying transport, and a configuration descriptor package that exposes detailed BlazeClientConfig settings (such as timeouts, connection limits, and user-agent strings) via the ZIO Config system, allowing users to customize the HTTP client behavior.

zio-aws-http4s · high confidence

Core AWS service request handling and streaming infrastructure

The \zio-aws-core\ module now provides the foundational implementation for executing AWS API calls and handling streaming data. \AwsServiceBase\ introduces protected methods for synchronous and asynchronous request-response patterns, as well as support for simple and advanced pagination using ZIO streams. New classes \ZStreamAsyncRequestBody\ and \ZStreamAsyncResponseTransformer\ enable the conversion of ZIO streams to and from AWS SDK async request bodies and response streams, facilitating efficient data transfer. Additionally, \ZEventStreamResponseHandler\ manages event stream interactions, and \BuilderHelper\ provides utility methods for configuring AWS SDK builders with optional parameters.

zio-aws-core/src/main/scala/zio/aws/core · high confidence

Introduces AWS CRT-based HTTP client implementation

Adds a new HTTP client implementation for AWS services using the AWS Common Runtime (CRT). This change introduces the \AwsCrtHttpClient\ component, which wraps the \AwsCrtAsyncHttpClient\ and provides both default and customized client configurations. It also adds configuration descriptors that allow users to tune connection settings such as max concurrency, read buffer size, proxy settings, connection health checks, TCP keep-alive, and post-quantum TLS support via structured configuration.

zio-aws-crt-http · high confidence

New GitHub Actions workflow generation library

Added a new Scala library in the \zio-aws-codegen\ module that provides a programmatic API for generating GitHub Actions workflow files. This includes data models for jobs, steps, triggers, and conditions, along with a \ScalaWorkflow\ object containing pre-built steps for common CI/CD tasks such as checking out code, setting up Java and Node.js environments, caching SBT dependencies, and uploading/downloading build artifacts.

zio-aws-codegen/src/main/scala/zio/aws/codegen/githubactions · high confidence

New Netty-based HTTP client implementation with configurable TLS, proxy, and HTTP/2 settings

The zio-aws-netty module now provides a new NettyHttpClient implementation that allows users to configure the underlying Netty NIO HTTP client. This includes support for HTTP/1.1, HTTP/2, and dual-protocol modes, as well as detailed configuration options for TLS (key and trust managers, SSL provider), proxy settings (host, port, scheme, non-proxy hosts), HTTP/2 specifics (max streams, initial window size, health check ping period), and various connection timeouts and limits. The client is exposed via ZIO layers, enabling easy integration into ZIO-based applications with customizable behavior through the new NettyClientConfig.

zio-aws-netty · high confidence

Project setup and documentation overhaul

This change introduces several configuration files to improve the local development experience and project structure: a .jvmopts file to prevent sbt OutOfMemory errors and support modern JVMs, a .env.template and clone\_aws\_repo.sh script to streamline cloning the AWS SDK repository, and dedicated scalafmt configuration files for Scala 2.12, 2.13, and Scala 3. It also adds an Apache 2.0 LICENSE file, updates .gitignore to exclude new build artifacts, and replaces the previous README with a comprehensive, auto-generated version that includes installation instructions, a detailed usage example, and updated project badges.

(repo-wide) · high confidence

Removals

Removal of CLI entry point and generator package

The standalone CLI application (Main.scala) and the core generator package (package.scala) have been removed from the codebase. This eliminates the previous command-line interface and the internal implementation details for generating AWS service modules, indicating a shift in how code generation is triggered or structured, likely moving towards an SBT plugin or external build tool integration as suggested by the commit history.

zio-aws-codegen/src/main/scala/io/github/vigoo/zioaws/codegen/generator · high confidence

Removal of legacy AWS codegen model loader

The \zioaws/codegen/loader\ package, which previously handled the discovery and loading of AWS SDK codegen models (including service definitions, waiters, paginators, and customization configs) via the \Loader.Service\ interface, has been removed. This eliminates the legacy mechanism for resolving \codegen-resources\ from the classpath and constructing \C2jModels\ instances, indicating a shift in how code generation inputs are managed within the project.

zio-aws-codegen/src/main/scala/io/github/vigoo/zioaws/codegen/loader · high confidence

Behavioural changes

Complete rewrite of the Scala code generator to ZIO 2 and Scala 3

The code generator in \zio-aws-codegen\ has been completely rewritten to use ZIO 2 and support Scala 3, replacing the previous implementation. This change introduces a new architecture where the generator is driven by ZIO layers (e.g., \AwsGenerator.live\), handles AWS SDK model loading from Git, and generates service interfaces, models, and CI workflows. It also adds support for streaming and event stream operations, pagination overrides, and blacklisting of specific newtypes to improve generated code quality.

zio-aws-codegen/src/main/scala/zio/aws/codegen/generator · high confidence

New AWS CRT HTTP client and refactored core error handling

This release introduces a new AWS CRT HTTP client implementation, adding configuration classes for connection health, proxy settings, TCP keep-alive, and post-quantum TLS in the \zio-aws-crt-http\ module. The core library has been refactored to replace Scala's \Option\ with ZIO Prelude's \Optional\ type, introducing a new \AwsError\ sealed trait and \GenericAwsError\ for more structured error handling. Additionally, the \StreamingOutputResult\ type now uses \AwsError\ as its stream error type, and new aspect support (\AwsCallAspect\) with \callLogging\ and \callDuration\ metrics has been added to the core package.

repository · high confidence

New AWS client configuration system with common and custom settings

The core configuration module has been replaced with a new system that manages AWS client setup via ZIO layers. Users can now configure clients using a \CommonAwsConfig\ (handling endpoints, regions, credentials, and timeouts) or apply custom \ClientCustomization\ logic. The new \AwsConfig\ trait provides specific methods to apply these settings to AWS SDK builders, separating general client configuration from HTTP client selection.

zio-aws-core/src/main/scala/zio/aws/core/config · high confidence

New AWS schema loader supporting classpath and Git sources

The codegen loader has been replaced with a new implementation that can load AWS service models from two sources: bundled resources on the classpath (FromClasspath) or by cloning and checking out the official AWS Java SDK v2 Git repository (FromGit). This change allows the code generator to fetch the latest service definitions dynamically from Git rather than relying solely on static, bundled JSON files, and introduces a caching layer to optimize repeated model loading.

zio-aws-codegen/src/main/scala/zio/aws/codegen/loader · high confidence

New HTTP client abstraction and socket configuration descriptors

The core HTTP client module now introduces a new \HttpClient\ trait and companion object that abstracts the creation of AWS SDK async HTTP clients. This implementation supports protocol selection (HTTP/1.1, HTTP/2, or Dual) and automatically selects the appropriate client based on service capabilities, failing if an HTTP/2-only client is forced on an HTTP/1.1-only service. Additionally, a new \descriptors\ package provides configuration helpers for standard Java socket options (such as keep-alive, buffer sizes, and TCP nodelay), enabling users to configure low-level network behavior through the ZIO Config system.

zio-aws-core/src/main/scala/zio/aws/core/httpclient · high confidence

Removal of core error and service abstractions

The \AwsError\ trait and the \AwsServiceBase\ trait have been removed from the core module. This eliminates the previous mechanism for wrapping AWS responses into a generic \AwsError\ type and the base service interface that handled asynchronous request-response conversions using \CompletableFuture\. Users relying on these specific core abstractions for error handling or service composition will need to adopt the updated error and service models provided by the library.

zio-aws-core/src/main/scala/io/github/vigoo/zioaws/core · high confidence

Removal of legacy ZIO 1 AWS configuration layer

The \AwsConfig\ type and its associated \ZLayer\ implementation in \zio-aws-core\ have been removed. This eliminates the legacy ZIO 1-style configuration service (\Has\[AwsConfig.Service\]\) that previously provided default, no-op hooks for configuring AWS clients and HTTP clients, reflecting the library's migration to ZIO 2.

zio-aws-core/src/main/scala/io/github/vigoo/zioaws/core/config · high confidence

Validation of endpoint URI scheme and new instance-profile credentials provider

The configuration system now validates that the \endpointOverride\ URI includes an \http\ or \https\ scheme, preventing runtime errors when invalid URIs are provided. Additionally, users can now configure the \instance-profile\ credentials provider type via configuration, alongside the existing \default\, \anonymous\, and \static\ options.

zio-aws-core/src/main/scala/zio/aws/core/config/descriptors · high confidence

Test coverage

Added comprehensive test suite for AwsServiceBase; Added integration tests for DynamoDB AttributeValue type-checking methods and multi-client AWS service operations; Added simulation utilities for AWS SDK async streams and pagination; Added tests for AWS config validation and parsing.

Dependencies

Added scalafmt configuration for code formatting

A new .scalafmt.conf file has been added to the zio-aws-codegen module, configuring the scalafmt code formatter to version 3.0.7 with the scala212 dialect and preserving line endings. This ensures consistent code formatting across the project.

zio-aws-codegen · high confidence

Project scaffolding and dependency configuration for ZIO AWS v7

The project build has been restructured with new \project/Common.scala\ and \project/plugins.sbt\ files, establishing the foundation for version 7 of the library. This configuration upgrades the core runtime to ZIO 2.1.26, AWS SDK 2.55.0, and Scala 3.9.0 (while retaining Scala 2.13 support), and updates the build tool to sbt 1.13.0. It also configures publishing to the new Maven Central Portal and integrates the \zio-aws-codegen\ plugin for code generation.

project · high confidence

Upgrade to ZIO 2.1.26 and AWS SDK 2.55.0 with new HTTP client backends

The build configuration has been updated to use ZIO 2.1.26 and the AWS SDK 2.55.0. This change introduces new project modules for HTTP client backends, specifically \zio-aws-http4s\, \zio-aws-netty\, \zio-aws-akka-http\, and a new \zio-aws-crt-http\ module for the AWS CRT client. The core module now depends on \aws-core\ instead of the legacy \core\ and \aws-sdk-java\ artifacts, and includes dependencies for \zio-prelude\ and \zio-interop-reactivestreams\. Additionally, the code generator module has been updated to use \zio-nio\ and \metagen-core\, and the build now supports Scala 3 via cross-compilation settings for Akka HTTP.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 58.

Lenses

  • Code Health 80
  • Architecture 95
  • Maturity 59
  • Readiness 46
  • Security 73

Changes since last survey

  • 300 commits — 288 feature/other, 12 fixes

By area

  • project/Common.scala — 192 commits
  • project/plugins.sbt — 27 commits
  • project/build.properties — 21 commits
  • (root) — 19 commits
  • .github/workflows — 19 commits
  • docs/artifacts.md — 10 commits
  • zio-aws-codegen/src — 4 commits
  • website/docs — 3 commits
  • zio-aws-core/src — 2 commits
  • examples/example3 — 1 commit
  • integtests/src — 1 commit
  • zio-aws-codegen/build.sbt — 1 commit

Notable commits

  • fix: Attempt to fix publish to new Sonatype (#1576)
  • fix: Fix unintentional repeat in callDuration aspect (#1597)
  • fix: Revert "Attempt to fix publish to new Sonatype (#1576)" (#1579)
  • fix: Try fix publishing: Add missing sbt homepage setting to try to fix the "Project URL is not defined" error (#1603)
  • fix: Try fix release process to new Maven Portal (#1548)
  • fix: Try fix release process to new Maven Portal (#1554)
  • fix: Try fix release process to new Maven Portal (#1555)
  • fix: Try fix release process to new Maven Portal (#1557)
  • fix: Try fix release process to new Maven Portal: Remove support of Scala 2.12 (#1560)
  • fix: fix compilation error with AWS SDK version 2.33.5 and later (#1622)
  • fix: fix(ci): scope the update-readme PR to README.md (#1937)
  • fix: fix: validate endpointOverride URI scheme (#626) (#1758)
  • change: CI: Add JDK 21 and JDK 25 (#1792)
  • change: Expose the hasL, hasM, etc. boolean methods on AttributeValue for the generated DynamoDB module (#1627)
  • change: Re-generate CI file (#1670)
  • change: Update AWS SDK to 2.50.3 (#1932)
  • change: Update CI (#1694)
  • change: Update CI (#1708)
  • change: Update CI (#1715)
  • change: Update CI (#1868)
  • …and 280 more

Architecture

  • 0 containers · 2 bounded contexts · 1 dependency edges (baseline)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

zio/zio-aws was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 0def99c65e9766e57c1b8a79c9218484b44239f2 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.