Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Protocol Buffers — Wikipédia
Protocol Buffers — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Protocol Buffers

Informations
Développé par GoogleVoir et modifier les données sur Wikidata
Première version 2001Voir et modifier les données sur Wikidata
Dernière version 33.0 (15 octobre 2025)[1]Voir et modifier les données sur Wikidata
Dépôt github.com/protocolbuffers/protobufVoir et modifier les données sur Wikidata
Écrit en C++Voir et modifier les données sur Wikidata
Environnement Multiplateforme (d)Voir et modifier les données sur Wikidata
Type Format de sérialisation de données (d)
Interface description language
Format de fichier (en)Voir et modifier les données sur Wikidata
Licence Licence BSDVoir et modifier les données sur Wikidata
Site web protobuf.devVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

Protocol Buffers, aussi connu sous le nom de Protobuf, est un format de sérialisation avec un langage de description d'interface développé par Google. L'implémentation d'origine publiée par Google pour C++, Java et Python est disponible sous une licence libre. Des implémentations pour d'autres langages sont disponibles ou en cours de développement[2].

Son intérêt concerne le développement de programmes ayant à communiquer les uns avec les autres sur un réseau ou pour simplement stocker des données. La méthode est basée sur un langage de description d’interface décrivant une structure des données. Un programme pourra alors générer ou analyser les messages en fonction de cette description.

Google a développé le Protocol Buffers pour un usage interne. Il a réalisé un générateur de code pour différents langages sous licence open source.

La conception du Protocol Buffers avait pour objectif la simplicité et la performance avec pour objectif d’être plus léger et plus rapide que le XML.

Le Protocol Buffers est largement utilisé chez Google pour le stockage et l’échange de toutes sortes de structures d’informations. Cette méthode sert de système RPC (remote procedure call) personnalisé utilisé pour quasiment l’ensemble des communications inter-machines de la compagnie.

Les Protocol Buffers sont très similaires au protocole Apache Thrift (utilisé par Facebook par exemple), sauf que l’implémentation publique du Protocole Buffers ne comprend pas de véritable ensemble de protocoles RPC voué à des services spécifiques.

Un développeur logiciel définira les structures de données (messages) et services au sein d’un fichier .proto et le transpilera via protoc. Cette compilation génèrera le code qui pourra être invoqué par un expéditeur ou destinataire de telles structures de données. Par exemple, example.proto génèrera les fichiers example.pb.cc et example.pb.h, définissant les classes C++ pour chaque message et service que example.proto déclare.

Les messages sont sérialisés sous un format binaire compact, avec une compatibilité ascendante et descendante, mais non auto-descriptive (ainsi, il est impossible de connaître les labels, signification ou types de données des champs sans les spécifications). Il n’y a pas de moyen défini pour inclure ou faire référence à de telles spécifications au sein du fichier Protocol Buffers.

Exemple

[modifier | modifier le code]
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;
}

Le message « Point » définit deux propriétés obligatoires, « x » et « y ». La propriété « label » est facultative. Chaque propriété a une étiquette, définie par un signe égal, par exemple « x » a l'étiquette 1.

Les messages « Line » et « Polyline » sont composés, ils utilisent « Point » dans leurs définitions. Le champ de type « repeated » (répétition) dans Polyline agit comme un vecteur.

Cette définition est ensuite compilée, en appelant protoc, pour être utilisée par un logiciel C++ de la manière suivante :

#include "polyline.pb.h"  // généré en appelant protoc polyline.proto (définition ci-dessus)

Line* createNewLine(const std::string& name) {
  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() {
  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(10);
  point2->set_y(10);
  return polyline;
}

Articles connexes

[modifier | modifier le code]
  • Apache Thrift
  • Apache Parquet
  • Abstract Syntax Notation One (ASN.1)
  • Etch de Cisco
  • gRPC, framework RPC open source initialement développé par Google, utilisant Protocol Buffers
  • « M » de Microsoft
  • Internet Communications Engine (ICE) de ZeroC

Références

[modifier | modifier le code]
  1. ↑ « Release 33.0 », 15 octobre 2025 (consulté le 20 octobre 2025)
  2. ↑ (en) « Protocolbuffers/protobuf », sur GitHub (consulté le 27 septembre 2020).

Liens externes

[modifier | modifier le code]
  • Site officiel
v · m
Communication inter-processus
Méthodes
  • Fichier
  • Mmap
  • Passage de messages
    • File d'attente
  • Tube
    • Nommé
    • Anonyme
  • Substitution de processus
  • Sémaphore
  • Mémoire partagée
  • Signaux
  • Sockets
    • INET
    • UNIX
Protocoles
  • Apache Thrift
  • Apple events
  • COM+
  • CORBA
  • D-Bus
  • DCE
  • ICE
  • ONC RPC
  • POSIX (différentes méthodes)
  • Protocol Buffers
  • SOAP
  • REST
  • TIPC
  • XML-RPC
  • icône décorative Portail des logiciels libres
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Protocol_Buffers&oldid=221279270 ».
Catégories :
  • Logiciel écrit en C++
  • Format de sérialisation de données
Catégories cachées :
  • Page utilisant P178
  • Page utilisant P571
  • Page utilisant P348
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P400
  • Page utilisant P31
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Portail:Logiciels libres/Articles liés
  • Portail:Logiciel/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Programmation informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id