Skip to content

scotthart/google-cloud-cpp-spanner

 
 

Repository files navigation

Google Cloud Spanner C++ Client Library

CI status docker/clang-tidy CI status docker/cmake CI status macos/bazel CI status windows/bazel Code Coverage Status

NOTICE: This repo will be merging with the googleapis/google-cloud-cpp monorepo in 60 days, around June 1, 2020. This change should not break any users who are using a released version. We expect this new monorepo organization to be better for our existing and new customers going forward. Please see googleapis/google-cloud-cpp#3612 for more details.

This repository contains an idiomatic C++ client library for interacting with Google Cloud Spanner, which is a fully managed, scalable, relational database service for regional and global application data.

Please note that the Google Cloud C++ client 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

Documentation

Quickstart

The quickstart/ directory contains a minimal environment to help you quickly get started using this client library. The following is the "Hello World" program you'll be running, which should give you a taste of this library.

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

int main(int argc, char* argv[]) try {
  if (argc != 4) {
    std::cerr << "Usage: " << argv[0]
              << " project-id instance-id database-id\n";
    return 1;
  }

  namespace spanner = ::google::cloud::spanner;
  spanner::Client client(
      spanner::MakeConnection(spanner::Database(argv[1], argv[2], argv[3])));

  auto rows =
      client.ExecuteQuery(spanner::SqlStatement("SELECT 'Hello World'"));

  for (auto const& row : spanner::StreamOf<std::tuple<std::string>>(rows)) {
    if (!row) throw std::runtime_error(row.status().message());
    std::cout << std::get<0>(*row) << "\n";
  }

  return 0;
} catch (std::exception const& ex) {
  std::cerr << "Standard exception raised: " << ex.what() << "\n";
  return 1;
}

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.

Other Google Cloud C++ Libraries

Licensing

Apache 2.0; see LICENSE for details.

About

Idiomatic C++ 11 client library for Google Cloud Spanner. https://cloud.google.com/spanner/

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 87.8%
  • Shell 5.6%
  • CMake 3.5%
  • Starlark 1.9%
  • PowerShell 0.8%
  • Python 0.2%
  • Other 0.2%