Java idiomatic client for Google Cloud Platform services.
See the official guide to get setup and started with development.
Libraries are available on GitHub and Maven Central for developing Java applications that interact with individual Google Cloud services:
If the service is not listed, google-api-java-client interfaces with additional Google Cloud APIs using a legacy REST interface.
When building Java applications, preference should be given to the libraries listed in the table.
This library provides tools to help write tests for code that uses google-cloud services.
See TESTING to read more about using our testing helpers.
This library follows Semantic Versioning, with some additional qualifications:
-
Components marked with
@BetaApi
or@Experimental
are considered to be "0.x" features inside a "1.x" library. This means they can change between minor and patch releases in incompatible ways. These features should not be used by any library "B" that itself has consumers, unless the components of library B that use@BetaApi
features are also marked with@BetaApi
. Features marked as@BetaApi
are on a path to eventually become "1.x" features with the marker removed.Special exception for google-cloud-java: google-cloud-java is allowed to depend on
@BetaApi
features in gax-java without declaring the consuming code@BetaApi
, because gax-java and google-cloud-java move in step with each other. For this reason, gax-java should not be used independently of google-cloud-java. -
Components marked with
@InternalApi
are technically public, but only because of the limitations of Java's access modifiers. For the purposes of semver, they should be considered private. -
Interfaces marked with
@InternalExtensionOnly
are public, but should only be implemented by internal classes. For the purposes of semver, we reserve the right to add to these interfaces without default implementations (for Java 7).
Please note these clients are currently under active development. Any release versioned 0.x.y is subject to backwards incompatible changes at any time.
Libraries defined at a Stable quality level are expected to be stable and all updates in the libraries are guaranteed to be backwards-compatible. Any backwards-incompatible changes will lead to the major version increment (1.x.y -> 2.0.0).
Libraries defined at a Preview quality level are still a work-in-progress and are more likely to get backwards-incompatible updates. Additionally, it's possible for Preview libraries to get deprecated and deleted before ever being promoted to Preview or Stable.
If you're using IntelliJ or Eclipse, you can add client libraries to your project using these IDE plugins:
Besides adding client libraries, the plugins provide additional functionality, such as service account key management. Refer to the documentation for each plugin for more details.
These client libraries can be used on App Engine standard for Java 8 runtime and App Engine flexible (including the Compat runtime). Most of the libraries do not work on the App Engine standard for Java 7 runtime. However, Datastore, Storage, and Bigquery should work.
See CONTRIBUTING.md.
Apache 2.0 - See LICENSE for more information.