google-cloud-java  by googleapis

Java idiomatic client for Google Cloud Platform services

created 10 years ago
1,968 stars

Top 22.8% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides idiomatic Java client libraries for interacting with a vast array of Google Cloud Platform services. It targets Java developers building applications on Google Cloud, offering a comprehensive and well-supported SDK for seamless integration.

How It Works

The libraries are generated from Google's API definitions, ensuring consistency and adherence to Google Cloud's service contracts. They leverage the google-auth-library-java for robust authentication and google-api-core for core functionalities like retries and long-running operations (LROs). The architecture supports both gRPC and HTTP/JSON transport layers, allowing flexibility based on network conditions and service availability.

Quick Start & Requirements

  • Installation: Managed via Maven or Gradle dependency management.
  • Prerequisites: Java 8 or higher.
  • Authentication: Handled automatically in GCP environments (GCE, GKE, App Engine). For other environments, use service account keys (via GOOGLE_APPLICATION_CREDENTIALS env var) or Google Cloud SDK's gcloud auth application-default login.
  • Documentation: Using the Cloud Client Libraries

Highlighted Details

  • Supports over 100 Google Cloud services with dedicated client libraries.
  • Provides robust handling for Long Running Operations (LROs) with configurable polling timeouts.
  • Offers testing utilities for integration with Google Cloud services.
  • Includes BOM (Bill of Materials) artifacts for simplified dependency management.

Maintenance & Community

This is a core Google-developed library, indicating strong backing and ongoing maintenance. Community contributions are welcomed, with a Contributor Code of Conduct in place.

Licensing & Compatibility

  • License: Apache 2.0.
  • Compatibility: Generally compatible with commercial and closed-source applications. gRPC-based clients have platform restrictions (x86_64, Mac/Windows/Linux) and do not support Android or Raspberry Pi.

Limitations & Caveats

gRPC-based clients are not supported on Android or ARM architectures (e.g., Raspberry Pi). While some libraries may work on App Engine Standard Java 7, most require Java 8+. Libraries marked with @BetaApi or @Experimental may undergo breaking changes.

Health Check
Last commit

1 day ago

Responsiveness

1 week

Pull Requests (30d)
46
Issues (30d)
3
Star History
35 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.