该存储库包含以下Google Cloud Platform服务的惯用C ++客户库。
请检查ChangElog以获取重要的公告和即将进行的更改。
每个库(请参见下文)包含一个名为quickstart/
目录,该目录旨在帮助您在几分钟之内启动和运行。该quickstart/
目录包含一个最小的“ Hello World”程序,展示了如何使用库,以及用于Complo build Systems(例如Cmake和Bazel)的最小构建文件。
例如,从Google Cloud存储中获取的以下代码段应该使您了解使用这些C ++库之一的感觉。
# include " google/cloud/storage/client.h "
# include < iostream >
# include < string >
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 a client to communicate with Google Cloud Storage. This client
// uses the default configuration for authentication and project id.
auto client = google::cloud::storage::Client ();
auto writer = client. WriteObject (bucket_name, " quickstart.txt " );
writer << " Hello World! " ;
writer. Close ();
if (!writer. metadata ()) {
std::cerr << " Error creating object: " << writer. metadata (). status ()
<< " n " ;
return 1 ;
}
std::cout << " Successfully created object: " << *writer. metadata () << " n " ;
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 ;
}
有关更多信息,请参见每个库的README.md
文件:
README.md
中指出,否则这些库都是GA的,并由Google支持。这是一个快速入门指南,适用于希望编译库并运行库中包含的示例的开发人员。
/usr/local
或/opt
)的开发人员应咨询包装指南。google-cloud-cpp
的贡献者和开发人员应咨询指南以建立开发工作站。该库需要Bazel> = 6.0。从顶级目录中运行通常的命令。
bazel build //...
该库需要cmake> = 3.10。如果您打算安装图书馆,请咨询包装指南,这些说明将不会产生您可以放入/usr/local
文物,也不会与您的同事共享。
从google-cloud-cpp
的顶级目录中运行以下命令:
git -C $HOME clone https://github.com/microsoft/vcpkg.git
env VCPKG_ROOT= $HOME /vcpkg $HOME /vcpkg/bootstrap-vcpkg.sh
cmake -S . -B cmake-out/ -DCMAKE_TOOLCHAIN_FILE= $HOME /vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build cmake-out -- -j $( nproc )
二进制文物(例如示例)将被放置在cmake-out/
。
该项目遵循Google的OSS库中断变更策略。
通常,我们避免对我们的公共API做出不相容的更改。有时,这种变化以更好的性能,易于理解的API和/或更一致的API的形式为我们的客户带来好处。当这些好处需要它时,我们将:
CHANGELOG.md
文件和受影响的发行说明中宣布这些更改。google-cloud-cpp
的主要版本。然而,尽管我们采取商业上合理的努力来防止这种情况,但倒退的变化可能是未被发现的,因此没有证件。如果是这种情况,我们深表歉意,欢迎反馈或错误报告以纠正问题。
有关如何为该项目做出贡献的详细信息,请参见CONTRIBUTING.md
。
Apache 2.0;有关详细信息,请参见LICENSE
。