{"id":13807632,"url":"https://github.com/reactiverse/aws-sdk","last_synced_at":"2025-07-25T07:36:11.519Z","repository":{"id":34006125,"uuid":"158650975","full_name":"reactiverse/aws-sdk","owner":"reactiverse","description":"Using vertx-client for AWS SDK v2","archived":false,"fork":false,"pushed_at":"2023-09-11T07:16:33.000Z","size":871,"stargazers_count":49,"open_issues_count":5,"forks_count":14,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-01-30T19:08:04.536Z","etag":null,"topics":["aws-sdk","java","netty","non-blocking","performance","reactive","scalability","vertx"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reactiverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-22T06:15:45.000Z","updated_at":"2024-09-11T07:00:20.000Z","dependencies_parsed_at":"2024-01-03T02:25:14.983Z","dependency_job_id":"a760ae0a-d552-438e-a0b7-5d90ad181324","html_url":"https://github.com/reactiverse/aws-sdk","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactiverse%2Faws-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactiverse%2Faws-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactiverse%2Faws-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactiverse%2Faws-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reactiverse","download_url":"https://codeload.github.com/reactiverse/aws-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237843816,"owners_count":19375208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-sdk","java","netty","non-blocking","performance","reactive","scalability","vertx"],"created_at":"2024-08-04T01:01:27.916Z","updated_at":"2025-02-08T17:31:05.505Z","avatar_url":"https://github.com/reactiverse.png","language":"Java","readme":"# Use AWS SDK v2 with Vert.x\n\n[![Build Status](https://travis-ci.org/reactiverse/aws-sdk.svg?branch=master)](https://travis-ci.org/reactiverse/aws-sdk)\n\nThis project provides a `VertxNioAsyncHttpClient` and a `VertxExecutor` so that you can use AWS SDK v2 in a Vert.x context.\n\n## Coordinates\n\nArtifacts are published [here](https://search.maven.org/artifact/io.reactiverse/aws-sdk)\n\n## Version compatibility matrix\n\n| Project | Vert.x | AWS sdk  |\n|---------|--------|----------|\n| 1.2.2   | 4.4.5  | 2.20.138 |\n| 1.2.1   | 4.4.2  | 2.20.74  |\n| 1.2.0   | 4.4.0  | 2.20.2   |\n| 1.1.0   | 4.2.4  | 2.17.129 |\n| 1.0.0   | 4.0.0  | 2.15.45  |\n| 0.7.0   | 3.9.4  | 2.15.23  |\n| 0.6.0   | 3.9.2  | 2.14.7   |\n| 0.5.1   | 3.9.2  | 2.13.6   |\n| 0.5.0   | 3.9.0  | 2.12.0   |\n| 0.4.0   | 3.8.3  | 2.10.16  |\n| 0.3.0   | 3.8.1  | 2.7.8    |\n\n## Documentation\n\nSee [this page](https://reactiverse.io/aws-sdk)\n\n## Motivations\n\n### AWS SDK v1 =\u003e blocking IOs\n\nAs you know, Vert.x uses non-blocking IO. This means, among other stuff, that you should never ever block the event-loop.\nAWS SDK v1 implementation relies on blocking IOs. This means you cannot use it together with Vert.x in a straightforward\nway. You would end up blocking the event-loop, hence killing your application's scalability. The only option would be\nto wrap your synchronous calls to AWS SDK v1 within `executeBlocking` or use a worker thread.\n\nEven though some methods of the AWS SDK are indicated as \"async\" (`DynamoAsyncClient` for instance), it internally uses\na thread pool whose size is configurable. Those threads can be a bottleneck in your application\n\nYou cannot really use AWS SDK v1 together with Vert.x in a non-blocking scalable way.\n\n### Embrace AWS SDK v2\n\nSince 2018, AWS has published the version 2 of its SDK, embracing non-blocking IO model.\n\nNow you can use V2 together with Vert.x using this project.\n\n* using Vert.x's HTTP client\n* `CompletableFuture\u003c?\u003e`'s are executed in the same Vert.x context that the one that made the request\n\n## Contributing\n\nTests placed under the `io.vertx.ext.awssdk.integration` package are using `localstack`: a huge set of\nutilities (docker images) emulating AWS Services (DynamoDB, Kinesis, S3, etc.).\n\nIn order to do so, they require a local docker daemon running on the machine.\n\nThey will download docker images from the docker hub, run the appropriate service as a docker container, then test\nthe code against this local docker container.\n\nThey'll only be executed if the system property `tests.integration` is set to `localstack`. They'll be ignored otherwise.\n\n## Documentation\n\nDocumentation is `docs/README.md` and visible at https://github.com/reactiverse/aws-sdk/tree/master/docs or https://reactiverse.io/aws-sdk/\n\nJavadoc can be produced (with Java 11 otherwise it does not link Vert.x API docs)\n\n```\n\u003e ./gradlew javadocToDocsFolder\n```\n\nThis will update the docs/javadoc with latest javadocs\n","funding_links":[],"categories":["Cloud Support"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactiverse%2Faws-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactiverse%2Faws-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactiverse%2Faws-sdk/lists"}