在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):googleapis/google-cloud-cpp开源软件地址(OpenSource Url):https://github.com/googleapis/google-cloud-cpp开源编程语言(OpenSource Language):C++ 94.2%开源软件介绍(OpenSource Introduction):Google Cloud Platform C++ Client LibrariesThis repository contains idiomatic C++ client libraries for the following Google Cloud Platform services.
See each library's
Building and InstallingThis is a quickstart guide for developers wanting to compile the libraries and run the examples included with the libraries.
Building with BazelThis library requires Bazel >= 4.0. From the top-level directory, run the usual commands. bazel build //... Building with CMakeThis library requires CMake >= 3.5. If you are planning to install the libraries
please consult the packaging guide, these instructions will
NOT produce artifacts that you can put in From the top-level directory of git -C $HOME clone https://github.com/microsoft/vcpkg.git
env VCPKG_ROOT=$HOME/vcpkg $HOME/vcpkg/bootstrap-vcpkg.sh
cmake -H. -Bcmake-out/ -DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build cmake-out -- -j $(nproc) The binary artifacts, such as examples, will be placed in QuickstartEach library (linked above) contains a directory named 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.
auto client = gcs::Client();
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");
if (!reader) {
std::cerr << "Error reading object: " << reader.status() << "\n";
return 1;
}
std::string contents{std::istreambuf_iterator<char>{reader}, {}};
std::cout << contents << "\n";
return 0;
} Support
Public API and API Breaking ChangesIn general, we avoid making backwards incompatible changes to our C++ APIs (see
below for the definition of "API"). Sometimes such changes yield benefits to
our customers, in the form of better performance, easier-to-understand APIs,
and/or more consistent APIs across services. When these benefits warrant it, we
will announce these changes prominently in our By "API" we mean the C++ API exposed by public header files in this repo. We are not talking about the gRPC or REST APIs exposed by Google Cloud servers. We are also talking only about API stability -- the ABI is subject to change without notice. You should not assume that binary artifacts (e.g. static libraries, shared objects, dynamically loaded libraries, object files) created with one version of the library are usable with newer/older versions of the library. The ABI may, and does, change on "minor revisions", and even patch releases. We request that our customers adhere to the following guidelines to avoid accidentally depending on parts of the library we do not consider to be part of the public API and therefore may change (including removal) without notice: Previous versions of the library will remain available on the GitHub Releases page. In many cases, you will be able to use an older version even if a newer version has changes that you are unable (or do not have time) to adopt. Note that this document has no bearing on the Google Cloud Platform deprecation policy described at https://cloud.google.com/terms. C++ Symbols and Files
Beyond the C++ APIApplications developers interact with a C++ library through more than just the C++ symbols and headers. They also need to reference the name of the library in their build scripts. Depending on the build system they use this may be a CMake target, a Bazel rule, a pkg-config module, or just the name of some object in the file system. As with the C++ API, we try to avoid breaking changes to these interface
points. Sometimes such changes yield benefits to our customers, in the form of
bug fixes, increased consistency across services, or easier to understand names.
When these benefits warrant it, we will announce these changes prominently in
our Experimental LibrariesFrom time to time we add libraries to Bazel rulesOnly the rules exported at the top-level directory are intended for customer
use, e.g., CMake targets and packagesOnly CMake packages starting with the pkg-config modulesOnly modules starting with Unsupported use casesWe try to provide stable names for the previously described mechanisms:
It is certainly possible to use the library using other approaches. While these may work, we may accidentally break these from time to time. Examples of such, and the recommended alternatives, include:
Documentation and CommentsThe documentation (and its links) is intended for human consumption and not third party websites, or automation (such as scripts scrapping the contents). The contents and links of our documentation may change without notice. Other Interface PointsWe think this covers all interface points, if we missed something please file a [GitHub issue][github-issue]. Contact us
Contributing changesSee LicensingApache 2.0; see |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论