يحتوي هذا المستودع على مكتبات عملاء C ++ Idiomatic لخدمات منصة Google Cloud التالية.
يرجى التحقق من changelog للحصول على إعلانات مهمة والتغييرات القادمة.
تحتوي كل مكتبة (انظر أدناه) على دليل يدعى quickstart/
يهدف إلى مساعدتك في الاستيقاظ والتشغيل في غضون دقائق. يحتوي هذا الدليل quickstart/
الدليل على برنامج "Hello World" الحد الأدنى الذي يوضح كيفية استخدام المكتبة ، إلى جانب الحد الأدنى من ملفات الإنشاء لأنظمة الإنشاء الشائعة ، مثل CMake و Bazel.
على سبيل المثال ، يجب أن يمنحك مقتطف الكود التالي ، المأخوذ من Google Cloud Storage ، شعوراً بما يشبه استخدام إحدى مكتبات 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.هذا دليل QuickStart للمطورين الذين يرغبون في تجميع المكتبات وتشغيل الأمثلة المضمنة في المكتبات.
/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/
.
يتبع هذا المشروع سياسة تغيير تغيير مكتبة OSS من Google.
بشكل عام ، نتجنب إجراء تغييرات غير متوافقة مع الخلف على واجهة برمجة التطبيقات العامة لدينا. في بعض الأحيان ، تسفر مثل هذه التغييرات عن فوائد لعملائنا ، في شكل أداء أفضل ، واجهات برمجة التطبيقات أسهل فهمها ، و/أو واجهات برمجة التطبيقات الأكثر اتساقًا عبر الخدمات. عندما تستدعي هذه الفوائد ، سنقوم:
CHANGELOG.md
الخاص بنا وفي ملاحظات الإصدار المتأثر.google-cloud-cpp
.ومع ذلك ، على الرغم من أننا بذلنا جهودًا معقولة تجاريًا لمنع ذلك ، إلا أنه من الممكن أن يتم اكتشاف التغييرات غير المتوافقة للخلف ، وبالتالي غير موثقة. نعتذر إذا كان هذا هو الحال وترحيب التعليقات أو تقارير الأخطاء لتصحيح المشكلة.
راجع CONTRIBUTING.md
.
Apache 2.0 ؛ انظر LICENSE
للحصول على التفاصيل.