Get started quickly using AWS with the AWS SDK for Java. The SDK helps take the complexity out of coding by providing Java APIs for AWS services including Amazon S3, Amazon ECS, DynamoDB, AWS Lambda, and more. The single, downloadable package includes the AWS Java library, code samples, and documentation.

The AWS SDK for Java 2.0 is now generally available and supported for production use. The 2.0 version of the SDK is a major rewrite of the 1.11 code base. Built for support for Java 8+, The AWS SDK for Java 2.0 adds several frequently requested features, like support for non-blocking I/O, better start-up performance and automatic iteration over paginated responses. In addition to these new features, many aspects of the SDK have been refactored with a strong focus on consistency, immutability, and ease of use.

If you are a new to the AWS SDK for Java or starting a new project, you should start with version 2.0 of the SDK. All the service APIs are available today and you can take advantage of the new features without needing to wait for high level libraries (e.g. Amazon DynamoDB Object Mapper and Amazon S3 Transfer Manager). Version 2.0 of the SDK can run in the same JVM as version 1.11. This allows gradual migration of 1.11 applications to 2.0 as well as allowing 2.0 applications to use 1.11 high level libraries as required.

Although we’re excited about the AWS SDK for Java 2.0, we also want to reassure customers that we will continue to update the 1.11 SDK with new service APIs, new services, bug fixes and security fixes.

The AWS SDK for Java 2.0 utilizes a new, nonblocking SDK architecture built on Netty to support true nonblocking I/O.

Automatic pagination

To maximize availability and minimize latency, many AWS APIs break up a result across multiple “pages” of responses. In 2.0, the SDK can handle this automatically.

Pluggable HTTP layer

Version 2.0, like 1.11, continues to ship Apache as the default synchronous HTTP client, but you can replace it with another implementation that better suits your use-case.

Key Features of AWS SDK for Java 1.11

Client-Side Data Encryption for Amazon S3

This easy-to-use, client-side encryption mechanism helps improve the security of storing application data in Amazon S3. Since encryption and decryption is performed client side, the private encryption keys never leave the application.

Amazon DynamoDB Object Mapper

The DynamoDBMapper eliminates the need for application-level data conversions and custom middleware solutions by using Plain Old Java Objects (POJOs) to store and retrieve Amazon DynamoDB data.

Amazon S3 Transfer Manager

Through a simple API, the Amazon S3 TransferManager achieves enhanced throughput, performance, and reliability by making extensive use of multi-threaded Amazon S3 multipart uploads.