GitHunt
TR

tritone/google-cloud-cpp

C++ Client Libraries for Google Cloud Services

Google Cloud Platform C++ Client Libraries

Kokoro CI status
Kokoro CI status
Kokoro CI status
Codecov Coverage status

Kokoro CI status
Kokoro CI status
Kokoro CI status

NOTICE: This repo will soon contain the code for all the other related
google-cloud-cpp-* repos. As a new monorepo
(#3612), the
versioning of this repo will be changing to have a single per-repo version. See
googleapis#3615 for more info.

This repository contains idiomatic C++ client libraries for the following
Google Cloud Platform services.

See each library's README.md file for more information about:

  • Where to find the documentation for the library and the service.
  • How to get started using the library.
  • How to incorporate the library into your build system.
  • The library's support status if not Generally Available (GA); unless noted in
    a library's README.md, these libraries are all GA and supported by Google.

NOTE: This repo and these libraries do not follow Semantic
Versioning
.

Supported Platforms

  • Windows, macOS, Linux
  • C++11 (and higher) compilers (we test with GCC >= 4.9, Clang >= 3.8, and MSVC >= 2019)
  • Environments with or without exceptions
  • Bazel and CMake builds

Quickstart

Each library (linked above) contains a directory named quickstart/ that's
intended to help you get up and running in a matter of minutes. This
quickstart/ directory contains a minimal "Hello World" program demonstrating
how to use the library, along with minimal build files for common build
systems, such as CMake and Bazel.

As an example, the following code snippet, taken from Google Cloud
Storage
, should give you a taste of what it's
like to use one of these C++ libraries.

#include "google/cloud/storage/client.h"
#include <iostream>

int main(int argc, char* argv[]) {
  if (argc != 2) {
    std::cerr << "Missing bucket name.\n";
    std::cerr << "Usage: quickstart <bucket-name>\n";
    return 1;
  }
  std::string const bucket_name = argv[1];

  // Create aliases to make the code easier to read.
  namespace gcs = google::cloud::storage;

  // Create a client to communicate with Google Cloud Storage. This client
  // uses the default configuration for authentication and project id.
  google::cloud::StatusOr<gcs::Client> client =
      gcs::Client::CreateDefaultClient();
  if (!client) {
    std::cerr << "Failed to create Storage Client, status=" << client.status()
              << "\n";
    return 1;
  }

  auto writer = client->WriteObject(bucket_name, "quickstart.txt");
  writer << "Hello World!";
  writer.Close();
  if (writer.metadata()) {
    std::cout << "Successfully created object: " << *writer.metadata() << "\n";
  } else {
    std::cerr << "Error creating object: " << writer.metadata().status()
              << "\n";
    return 1;
  }

  auto reader = client->ReadObject(bucket_name, "quickstart.txt");
  std::string contents{std::istreambuf_iterator<char>{reader}, {}};
  std::cout << contents << "\n";

  return 0;
}

Contributing changes

See CONTRIBUTING.md for details on how to contribute to
this project, including how to build and test your changes as well as how to
properly format your code.

Licensing

Apache 2.0; see LICENSE for details.

Languages

C++90.1%CMake2.9%Shell2.4%Python1.9%Starlark1.7%PowerShell0.6%Go0.2%C0.1%R0.1%Makefile0.1%Batchfile0.0%Awk0.0%
Apache License 2.0
Created May 12, 2020
Updated May 26, 2020