بروتوكول التخزين المؤقت

بروتوكول التخزين المؤقت
امتداد الملف
proto، txtpb[1]، binpb[2]الاطلاع ومراجعة البيانات على ويكي داتا
صيغة وسائط الإنترنت
application/protobuf — application/vnd.google.protobufالاطلاع ومراجعة البيانات على ويكي داتا
المطور
أول إصدار
7 يوليو 2008الاطلاع ومراجعة البيانات على ويكي داتا
موقع الويب

بروتوكول التخزين المؤقت (بالإنجليزية: Protocol Buffers)‏ اختصارًا (Protobuf) هي تنسيق بيانات حُر، ومفتوح المصدر يعمل على عدة منصات يُستخدم في إجراء تسلسل للبيانات المهيكلة. يفيد في تطوير البرامج للتواصل مع بعضها البعض عبر شبكة أو لتخزين البيانات. تتضمن الطريقة لغة وصف الواجهة التي تصف بنية بعض البيانات والبرنامج الذي يولد شفرة المصدر من هذا الوصف لتوليد أو تحليل دفق البايت الذي يمثل البيانات المهيكلة.

ملخص

طورت Google Protocol Buffers للاستخدام الداخلي وقدمت منشئ رمز للغات متعددة بموجب ترخيص مفتوح المصدر (انظر أدناه).

أكدت أهداف تصميم بروتوكول التخزين المؤقت على البساطة والأداء. على وجه الخصوص، تم تصميمه ليكون أصغر وأسرع من XML .[7] تُستخدم بروتوكول التخزين المؤقت على نطاق واسع في Google لتخزين وتبادل جميع أنواع المعلومات المنظمة. تعمل هذه الطريقة كأساس لنظام استدعاء إجراء بعيد مخصص (RPC) يتم استخدامه تقريبًا لجميع الاتصالات بين الأجهزة في Google.[8]

تشبه بروتوكول التخزين المؤقت المؤقتة Apache Thrift (التي يستخدمها Facebook ، وEvernote)، أو Ion (التي أنشأتها Amazon)، أو بروتوكولات Microsoft Bond ، وتقدم أيضًا حزمة بروتوكول RPC ملموسة لاستخدامها في خدمات محددة تسمى gRPC .[9]

يتم وصف هياكل البيانات والخدمات في ملف تعريف .proto (.proto) ويتم تجميعها باستخدام protoc . ينشئ هذا التجميع رمزًا يمكن استدعاؤه بواسطة مرسل أو متلقي هياكل البيانات هذه. على سبيل المثال، يتم إنشاء example.pb.cc و example.pb.h example.proto . يعرّفون فئات ++C لكل رسالة وخدمة في example.proto .

من الناحية القانونية، يتم تسلسل الرسائل إلى تنسيق سلكي ثنائي يكون مضغوطًا ومتوافقًا مع الأمام والخلف، ولكنه لا يصف نفسه (أي، لا توجد طريقة لمعرفة الأسماء أو المعنى أو أنواع البيانات الكاملة للحقول بدون مواصفات خارجية). لا توجد طريقة محددة لتضمين أو الإشارة إلى مثل هذه المواصفات الخارجية (المخطط) داخل ملف Protocol Buffers. يشتمل التطبيق المدعوم رسميًا على تنسيق تسلسل ASCII ، [10] ولكن هذا التنسيق - على الرغم من أنه يصف ذاتيًا - يفقد سلوك التوافق الأمامي والخلفي، وبالتالي لا يعد اختيارًا جيدًا للتطبيقات بخلاف التصحيح.

على الرغم من أن الغرض الأساسي للمخازن المؤقتة للبروتوكول هو تسهيل الاتصال بالشبكة، إلا أن بساطتها وسرعتها تجعل من المخازن المؤقتة للبروتوكول بديلاً لفئات وهياكل ++C المتمحورة حول البيانات، خاصةً حيث قد تكون هناك حاجة للتشغيل البيني مع لغات أو أنظمة أخرى في المستقبل.

مثال

مخطط لاستخدام معين للمخازن المؤقتة للبروتوكول يربط أنواع البيانات بأسماء الحقول، باستخدام الأعداد الصحيحة لتحديد كل حقل. تحتوي بيانات المخزن المؤقت للبروتوكول على الأرقام فقط، وليس أسماء الحقول، مما يوفر بعض توفير عرض النطاق الترددي / التخزين مقارنة بالأنظمة التي تتضمن أسماء الحقول في البيانات.

//polyline.proto
syntax = "proto2";

message Point {
  required int32 x = 1;
  required int32 y = 2;
  optional string label = 3;
}

message Line {
  required Point start = 1;
  required Point end = 2;
  optional string label = 3;
}

message Polyline {
  repeated Point point = 1;
  optional string label = 2;
}

تحدد رسالة «النقطة» عنصري بيانات إلزاميين، x و y . تسمية عنصر البيانات اختيارية. كل عنصر بيانات له علامة. يتم تحديد العلامة بعد علامة التساوي. على سبيل المثال، x لديه العلامة 1.

توضح الرسائل "Line" و "Polyline"، اللتان تستخدمان Point ، كيفية عمل التركيب في بروتوكول التخزين المؤقت. يحتوي Polyline على حقل متكرر يتصرف مثل المتجه.

يمكن بعد ذلك تجميع هذا المخطط لاستخدامه من قبل لغة برمجة واحدة أو أكثر. توفر Google protoc يسمى protoc والذي يمكنه إنتاج مخرجات لـ ++C أو Java أو Python. تتوفر برامج التحويل البرمجي للمخططات الأخرى من مصادر أخرى لإنشاء مخرجات تعتمد على اللغة لأكثر من 20 لغة أخرى.[11]

على سبيل المثال، بعد إنتاج إصدار ++ C من مخطط المخزن المؤقت للبروتوكول أعلاه، يمكن لملف شفرة المصدر C ++ ، polyline.cpp ، استخدام كائنات الرسالة على النحو التالي:

// polyline.cpp
#include "polyline.pb.h" // generated by calling "protoc polyline.proto"

Line* createNewLine(const std::string& name) {
  // create a line from (10, 20) to (30, 40)
  Line* line = new Line;
  line->mutable_start()->set_x(10);
  line->mutable_start()->set_y(20);
  line->mutable_end()->set_x(30);
  line->mutable_end()->set_y(40);
  line->set_label(name);
  return line;
}

Polyline* createNewPolyline() {
  // create a polyline with points at (10,10) and (20,20)
  Polyline* polyline = new Polyline;
  Point* point1 = polyline->add_point();
  point1->set_x(10);
  point1->set_y(10);
  Point* point2 = polyline->add_point();
  point2->set_x(20);
  point2->set_y(20);
  return polyline;
}

اللغات البرمجية المدعومة

يوفر Protobuf 2.0 مولد أكواد لـ ++C وJava و#C و [12] وPython .[13]

يوفر Protobuf 3.0 مولد أكواد لـ ++ C ، وJava (بما في ذلك JavaNano ، وهي لغة مخصصة للبيئات منخفضة المواردوPython ، وGo ، وRuby ، وObjective-C ، و#C .[14] كما أنه يدعم JavaScript منذ 3.0.0-beta-2.[15]

تتوفر تطبيقات الطرف الثالث أيضًا لـ Ballerina ، [16] C ، [17][18] C ++ ، [19] Dart ، Elixir ، [20][21] Erlang ، [22] Haskell ، [23] JavaScript ، [24] Perl ، PHP ، R ، [25] رست، [26][27][28] سكالا، سويفت، [29] جوليا [30] ونيم.[31]

انظر أيضًا

المراجع

  1. ^ https://protobuf.dev/reference/protobuf/textformat-spec/#text-format-files. {{استشهاد ويب}}: |url= بحاجة لعنوان (مساعدة) والوسيط |title= غير موجود أو فارغ (من ويكي بيانات) (مساعدة)
  2. ^ https://protobuf.dev/reference/protobuf/textformat-spec/#text-format-files. {{استشهاد ويب}}: |url= بحاجة لعنوان (مساعدة) والوسيط |title= غير موجود أو فارغ (من ويكي بيانات) (مساعدة)
  3. ^ ا ب وصلة مرجع: https://developers.google.com/protocol-buffers/. الوصول: 28 يناير 2023.
  4. ^ ا ب وصلة مرجع: https://api.github.com/repos/protocolbuffers/protobuf. الوصول: 28 يناير 2023.
  5. ^ وصلة مرجع: https://api.github.com/repos/google/protobuf. الوصول: 29 يوليو 2018.
  6. ^ وصلة مرجع: https://api.github.com/repos/protocolbuffers/protobuf. الوصول: 2 نوفمبر 2018.
  7. ^ Eishay Smith. "jvm-serializers Benchmarks". مؤرشف من الأصل في 2021-03-23. اطلع عليه بتاريخ 2010-07-12.
  8. ^ Kenton Varda. "A response to Steve Vinoski". مؤرشف من الأصل في 2020-11-09. اطلع عليه بتاريخ 2008-07-14.
  9. ^ "grpc". grpc.io. مؤرشف من الأصل في 2021-11-14. اطلع عليه بتاريخ 2016-10-02.
  10. ^ "text_format.h - Protocol Buffers - Google Code". مؤرشف من الأصل في 2012-02-25. اطلع عليه بتاريخ 2012-03-02.
  11. ^ ThirdPartyAddOns - protobuf - Links to third-party add-ons. نسخة محفوظة 2015-03-18 على موقع واي باك مشين.
  12. ^ "Protocol Buffers in C#". Code Blockage. مؤرشف من الأصل في 2021-11-15. اطلع عليه بتاريخ 2017-05-12.
  13. ^ "Protocol Buffers Language Guide". Google Developers. مؤرشف من الأصل في 2021-11-01. اطلع عليه بتاريخ 2016-04-21.
  14. ^ "Language Guide (proto3) | Protocol Buffers". Google Developers (بالإنجليزية). Archived from the original on 2021-11-10. Retrieved 2020-08-09.
  15. ^ "Release Protocol Buffers v3.0.0-beta-2 · protocolbuffers/protobuf". GitHub (بالإنجليزية). Archived from the original on 2020-11-22. Retrieved 2020-08-09.
  16. ^ "Ballerina - GRPC". مؤرشف من الأصل في 2021-11-15.
  17. ^ "Nanopb - protocol buffers with small code size". مؤرشف من الأصل في 2021-09-30. اطلع عليه بتاريخ 2017-12-12.
  18. ^ "Protocol Buffers implementation in C". مؤرشف من الأصل في 2021-08-01. اطلع عليه بتاريخ 2017-12-12.
  19. ^ "Embedded Proto - Protobuf for microcontrollers". مؤرشف من الأصل في 2021-10-31. اطلع عليه بتاريخ 2021-08-15.
  20. ^ "Protox". 25 أكتوبر 2021. مؤرشف من الأصل في 2020-12-01.
  21. ^ "Protobuf-elixir". 26 أكتوبر 2021. مؤرشف من الأصل في 2021-07-15.
  22. ^ "Tomas-abrahamsson/GPB". 19 أكتوبر 2021. مؤرشف من الأصل في 2020-10-30.
  23. ^ "Proto-lens". 16 أكتوبر 2021. مؤرشف من الأصل في 2021-01-18.
  24. ^ "Protocol Buffers for JavaScript". github.com. مؤرشف من الأصل في 2021-11-12. اطلع عليه بتاريخ 2016-05-14.
  25. ^ "Rprotobuf/SRC at master · eddelbuettel/Rprotobuf". مؤرشف من الأصل في 2021-11-15.
  26. ^ "Rust-protobuf". 26 أكتوبر 2021. مؤرشف من الأصل في 2021-07-30.
  27. ^ "PROST!". 21 أغسطس 2021. مؤرشف من الأصل في 2021-10-13.
  28. ^ "Quick-protobuf". 12 أكتوبر 2021. مؤرشف من الأصل في 2021-01-03.
  29. ^ "Swift Protobuf". 26 أكتوبر 2021. مؤرشف من الأصل في 2021-11-12.
  30. ^ "ThirdPartyAddOns - protobuf - Links to third-party add-ons. - Protocol Buffers - Google's data interchange format - Google Project Hosting". مؤرشف من الأصل في 2015-03-18. اطلع عليه بتاريخ 2012-11-07.
  31. ^ "Protobuf implementation in pure Nim that leverages the power of the macro system to not depend on any external tools". GitHub (بالإنجليزية). 21 Oct 2021. Archived from the original on 2020-11-18.


روابط خارجية

Read other articles:

Le tourisme est un facteur économique important en Espagne. Dès 1962, le pays développe le tourisme de masse grâce à une campagne : « España es diferente ». Après la mort de Franco, l'Espagne devient la deuxième destination touristique au monde après la France. D'après l'organisation mondiale du tourisme, plus de 80 millions de touristes par an se rendent en Espagne. Cependant, elle se classe première en termes de séjours hôteliers, avec 299 millions de nuits. la...

 

  لمعانٍ أخرى، طالع وزارة التعليم العالي والبحث العلمي (توضيح). وزارة التعليم العالي والبحث العلمي الفلسطينية وزارة التعليم العالي والبحث العلمي (فلسطين) مبنى وزارة التعليم العالي والبحث العلمي في حي المصيون برام الله تفاصيل الوكالة الحكومية البلد دولة فلسطين  تأسس

 

Страта конфедератів 9 травня 1794 року у Варшаві Тарговицька, або Торговицька конфедерація (пол. Konfederacja Targowicka) — змова польських магнатів з Францішеком Ксаверієм Браніцьким, Станіславом Щенсним Потоцьким на чолі з Северином Жевуським (всі з Правобережжя) проти реформ Ч...

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (ديسمبر 2020) دان بيترسون معلومات شخصية الميلاد 31 أغسطس 1940 (83 سنة)  إدمونتون  مواطنة كندا  الحياة العملية المهنة سياسي  اللغات الإنجليزية  تعديل مصدري - تعديل ...

 

Це сторінка обговорень та пропозицій для статті Знімок (шаблон проєктування) Будь ласка, підписуйте свої коментарі (для цього наберіть ~~~~ або натисніть кнопку    над віконцем редагування) Нові теми починайте внизу сторінки (додати тему). Вперше у Вікіпедії? Ласкаво проси...

 

Hot Girl SummerSingel oleh Megan Thee Stallion featuring Nicki Minaj dan Ty Dolla SignDirilis9 Agustus 2019 (2019-08-09)Format Unduhan digital streaming GenreTrapDurasi3:19Label300ProduserBone CollectorJuicy JKronologi singel Megan Thee Stallion Three Point Stance (2019) Hot Girl Summer (2019) Kronologi singel Nicki Minaj Extravagant(2019) Hot Girl Summer(2019) Welcome to the Party (Remix)(2019) Kronologi singel Ty Dolla Sign Two Nights Part II(2019) Hot Girl Summer(2019) ...

President of Benin (1972–1991, 1996–2006) Mathieu KérékouKérékou in 2006President of BeninIn office4 April 1996 – 6 April 2006Prime MinisterAdrien HoungbédjiPreceded byNicéphore SogloSucceeded byThomas Boni YayiIn office26 October 1972 – 4 April 1991Prime MinisterNicéphore SogloPreceded byJustin Ahomadégbé-TomêtinSucceeded byNicéphore Soglo Personal detailsBorn(1933-09-02)2 September 1933Kouarfa, French DahomeyDied14 October 2015(2015-10-14) (aged 82)...

 

Parte da série sobrePolítica do Afeganistão Constituição Executivo Presidente (Lista) - Ashraf Ghani Vice-presidente - Amrullah Saleh - Sarwar Danish Legislativo Assembleia Nacional - Câmara dos Anciãos - Câmara do Povo Judiciário Suprema Corte Eleições Eleições presidenciais - 2014 · 2019 Tópicos relacionados Missões diplomáticas Subdivisões regionais - Distritos Processo de paz Portal do Afeganistãovde Ver também vdePredefinições de política da ÁsiaEstad...

 

  لمعانٍ أخرى، طالع البلق (توضيح). قرية البلق  - قرية -  تقسيم إداري البلد  اليمن المحافظة محافظة المحويت المديرية مديرية ملحان العزلة عزلة باحش السكان التعداد السكاني 2004 السكان 246   • الذكور 124   • الإناث 122   • عدد الأسر 36   • عدد المساكن 22 معلومات ...

The 12th Army was a field army of the Red Army during the Russian Civil War, which was formed twice. First formation The 12th Army was formed on October 3, 1918, in the region of Astrakhan and the Eastern part of the Northern Caucasus. It was part of the Southern Front since November 3, 1918, and then of the Caspian-Caucasian Front, with which it fought the Northern Caucasus Operation (1918–1919), between December 8, 1918, and March 13, 1919, when it was disbanded. It was composed of the 45...

 

Indigenous group in British Columbia, Canada This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Haida people – news · newspapers · books · scholar · JSTOR (October 2007) (Learn how and when to remove this template message) HaidaX̱aayda, X̱aadas, X̱aad, X̱aatFlag of the Council of the Haida Nation (CHN)Map o...

 

علي شير النوائي معلومات شخصية الميلاد 18 فبراير 1441(1441-02-18)هراة الوفاة 13 يناير 1501 (59 سنة)هراة مواطنة الدولة التيموريةخراسان الكبرى  الحياة العملية المهنة شاعر  اللغات الفارسية،  والجغطائية  مجال العمل فلسفة،  وشعر  التيار صوفية،  وأهل السنة والجماعة  تعدي...

Ілюстрація зменшення інтенсивності світла в рідині. Розсіяне світло від зеленого променя лазера зменшується з глибиною. Закон Бугера — Ламберта — Бера — закон експоненційного зменшення інтенсивності світла в середовищі в залежності від його товщини: I = I 0 e ȡ...

 

2024年夏季奥林匹克运动会哈萨克斯坦代表團哈萨克斯坦国旗IOC編碼KAZNOC哈萨克斯坦共和国国家奥林匹克委员会網站olympic.kz(英文)(哈薩克文)(俄文)2024年夏季奥林匹克运动会(巴黎)2024年7月26日至8月11日運動員2參賽項目2个大项历届奥林匹克运动会参赛记录(总结)夏季奥林匹克运动会19962000200420082012201620202024冬季奥林匹克运动会19941998200220062010201420182022其他相关赛事...

 

Untuk terminal bus di kabupaten Tulungagung, lihat Terminal Gayatri. Terminal TalangagungSub Terminal Penumpang Tipe CGerbang Masuk & Keluar Terminal TalangagungNama lainTerminal KepanjenLokasiJalan Raya Talangagung, Dusun Anggrungan, Desa Talangagung, Kecamatan Kepanjen, Kabupaten Malang, Provinsi Jawa Timur, Kodepos 65163 IndonesiaKoordinat8°07′41″S 112°33′29″E / 8.128002°S 112.558117°E / -8.128002; 112.558117Koordinat: 8°07′41″S 112°33′2...

Brazilian actress (born 1969) In this Portuguese name, the first or maternal family name is Escobar and the second or paternal family name is Duncan. Daniela EscobarEscobar in 2016BornDaniela Escobar Duncan (1969-01-16) 16 January 1969 (age 54)São Borja, Rio Grande do Sul, BrazilAlma mater Pontifical Catholic University of Rio Grande do Sul University of California, Los Angeles OccupationsActresstelevision presentervoice actressYears active1989–presentSpouses Jayme Monja...

 

British pornographic actor, director and producer (born 1984) Not to be confused with Kieran Lee. Keiran LeeLee in January 2016BornAdam Diksa (1984-01-15) 15 January 1984 (age 39)Derby, EnglandOther namesPrincess[1]Occupation(s)Actor, director, producerYears active2002–presentSpouses Puma Swede ​ ​(m. 2009, divorced)​ Kirsten Price ​ ​(m. 2013)​ Children3 Adam Diksa (born 15 January 1984), b...

 

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: So Much in Love The Tymes album – news · newspapers · books · scholar · JSTOR (August 2022) 1963 studio album by The TymesSo Much in LoveStudio album by The TymesReleased1963Recorded1963GenreDoo-wopLength45:10LabelParkwayThe Tymes chronol...

Charles M. Duke Jr.Potret NASA resmi Charles Duke,21 September 1971Lahir3 Oktober 1935 (umur 88)Charlotte, Carolina Utara, ASStatusPurnawirawanKebangsaanAmerika SerikatNama lainCharles Moss Duke Jr.PekerjaanPilot tempur, pilot uji cobaKarier luar angkasaAntariksawan NASA Situs webwww.charlieduke.com Charles Moss Charlie Duke Jr. (lahir 3 Oktober 1935) adalah seorang mantan antariksawan Amerika Serikat, purnawirawan Angkata Udara Amerika Serikat dan pilot uji coba. Ia adalah orang ke...

 

North American paint company Behr Paint CompanyBucket of Behr paintFounded1947FounderOtho Behr, Jr.Headquarters1801 E. Saint Andrews PlaceSanta Ana, California 92705U.S.Key peopleJeff Filley, (President)ProductsPaint, Epoxy PaintParentMasco[1]Websitewww.behr.com Behr Paint Company (stylized as BEHR) is a supplier of architectural paint and exterior wood care products to the American and Canadian do-it-yourself markets. BEHR manufactures interior and exterior house paints, decorative f...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!