Skip to content

Latest commit

 

History

History
89 lines (66 loc) · 3.05 KB

README.md

File metadata and controls

89 lines (66 loc) · 3.05 KB

🚧 Google Cloud Pub/Sub C++ Client Library

This directory contains an idiomatic C++ client library for interacting with Cloud Pub/Sub, an asynchronous messaging service that decouples services that produce events from services that process events.

Please note that the Google Cloud C++ client libraries do not follow Semantic Versioning.

⚠️ This library is under development and subject to breaking changes without notice.

Supported Platforms

  • Windows, macOS, Linux
  • C++11 (and higher) compilers (we test with GCC >= 5.4, 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/pubsub/publisher.h"
#include <iostream>
#include <stdexcept>

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

  std::string const project_id = argv[1];
  std::string const topic_id = argv[2];

  // Create a namespace alias to make the code easier to read.
  namespace pubsub = google::cloud::pubsub;
  auto publisher = pubsub::Publisher(
      pubsub::MakePublisherConnection(pubsub::Topic(project_id, topic_id), {}));
  auto id =
      publisher
          .Publish(pubsub::MessageBuilder{}.SetData("Hello World!").Build())
          .get();
  if (!id) throw std::runtime_error(id.status().message());
  std::cout << "Hello World published with id=" << *id << "\n";

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

Installation

Please consult the packaging guide for detailed instructions to install the Google Cloud C++ client libraries. If your project uses CMake or Bazel check the quickstart example for instructions to use this library in your project.

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.