3
votes

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

2

2 Answers

6
votes

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.

1
votes

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.