5

How do they differ? and what is the use case for each?

Is it possible for me to use one exclusively, such as if I'm more familiar with .NET I could do everything using the Client Library (for .NET) that I could with python and the SDK?

Google Cloud SDK https://cloud.google.com/sdk/docs/

Google Cloud Client Libraries https://cloud.google.com/apis/docs/cloud-client-libraries

question
  • 93
  • 1
  • 4

2 Answers2

8

The Cloud SDK is a set of command line tools (gcloud, gsutil, and bq). The use of the term 'SDK' here seems to be misleading and they should probably be called Google Cloud Tools or Google Cloud CLI.

The Cloud Client Libraries are the latest set of libraries available in various languages that you can program against.

There's also an older set of client libraries called the Google API Client Libraries. They're autogenerated from Google service interfaces and are simple wrappers to REST calls. You should probably use the newer Cloud Client Libraries if you can as they are more idiomatic and provide better abstraction.

jarmod
  • 71,565
  • 16
  • 115
  • 122
  • 1
    Thanks, the Client Libraries support the application while the SDK are just a set of CLI tools. For the most part, do the Client Libraries provide all the functionality that SDK commands would? – question Dec 28 '16 at 01:39
  • The Client Libraries should expose most or all of the significant API features. The Cloud SDK exposes some portion of that to provide simple command line usage (e.g. list a GCS bucket, launch a GCE instance) as well as to provide higher-level utility functions, such as syncing GCS buckets, or running a BQ query and printing the results in a tabular form. I don't know what percentage of possible API calls are exposed in the Client Libraries, nor what percentage of those exposed APIs are actually surfaced in the Cloud SDK tools. – jarmod Dec 28 '16 at 16:06
1

Jarmod's answer is excellent.

Could I do everything using the Client Library (for .NET) that I could with python and the SDK?

Almost everything. Exceptions I know:

  1. .NET code can't run on good ole Google App Engine Standard. You can still run your .NET code in Google Compute Engine (on Windows) or Google App Engine Flexible Environment (.NET core code on Linux.)
  2. Tensorflow only has a Python API.
  3. Bigtable doesn't have a .NET API.

https://github.com/GoogleCloudPlatform/dotnet-docs-samples shows how to call many, but not all of the Google Cloud APIs.

Jeffrey Rennie
  • 3,193
  • 1
  • 18
  • 19