A flexible, easy-to-use Elixir client library for interacting with AWS APIs.
ExAws is an Elixir client library that provides flexible and easy-to-use access to Amazon Web Services APIs. It wraps AWS services with idiomatic Elixir functions, allowing developers to interact with services like S3, DynamoDB, and ECS directly from their Elixir applications. The library solves the problem of integrating AWS cloud services into Elixir-based systems with minimal dependencies and clear abstractions.
Elixir developers building applications that need to interact with AWS services, particularly those working on backend systems, cloud infrastructure, or serverless architectures in the Elixir ecosystem.
Developers choose ExAws for its modular design, minimal dependencies, and close alignment with AWS APIs while providing Elixir-specific conveniences like streams for pagination. Its flexible credential resolution and support for multiple authentication methods make it robust for production use in various deployment environments.
A flexible, easy to use set of clients AWS APIs for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Each AWS service is a separate Hex package, allowing developers to include only what they use, which minimizes dependency bloat and keeps applications lean.
Works with preferred HTTP clients like Hackney and JSON codecs like Jason, giving teams control over their stack without being locked into specific libraries.
Uses Elixir streams to automatically handle paginated AWS resources, simplifying code for iterating over large datasets without manual page management.
Automatically resolves credentials from multiple sources including environment variables, AWS CLI config, EKS Pod Identity, and IAM roles, easing deployment across different AWS environments.
Requires configuring separate packages for each AWS service, HTTP clients, and JSON codecs, which can be cumbersome and error-prone for newcomers or rapid prototyping.
Local testing for services like DynamoDB necessitates running Docker containers, adding infrastructure dependencies and complexity to development workflows.
For services not fully supported, developers must manually map AWS API details using low-level operations, increasing the risk of errors and requiring deep API knowledge.