CoderTools

Outil Protocol Buffers

Encoder, décoder et valider les messages Protocol Buffers

Schéma Proto

Exemples de Schémas:

Entrée

Analysez le schéma et sélectionnez un type de message pour générer les champs du formulaire

Sortie

Documentation Protocol Buffers

Qu'est-ce que Protocol Buffers ?

Protocol Buffers (Protobuf) est un mécanisme extensible, indépendant du langage et de la plateforme, pour la sérialisation de données structurées, développé par Google. Il est plus petit, plus rapide et plus simple que XML et JSON pour la sérialisation des données.

Fonctionnalités Principales

  • Indépendant du langage et de la plateforme
  • Plus petit et plus rapide que XML/JSON
  • Typage fort avec définition de schéma
  • Compatibilité ascendante et descendante
  • Génération automatique de code
  • Encodage binaire efficace

Comment Utiliser Cet Outil

  1. Entrez votre définition de schéma .proto dans l'éditeur
  2. Cliquez sur Analyser le Schéma pour valider et analyser
  3. Sélectionnez le type de message souhaité
  4. Pour encoder : Entrez les données JSON et cliquez sur Encoder
  5. Pour décoder : Entrez les données binaires et cliquez sur Décoder
  6. Utilisez « Décodage Brut » pour analyser les données binaires sans schéma

Fonctionnalités de l'Outil

Encoder

Convertir les données JSON en format binaire Protocol Buffers. Prend en charge la saisie par formulaire pour une entrée de données facile avec validation des types.

Décoder

Convertir les données binaires Protocol Buffers en format JSON lisible. Prend en charge les formats d'entrée Base64, Hex et Hex style C.

Décodage Brut

Analyser les données binaires protobuf sans schéma. Utile pour le débogage, la rétro-ingénierie ou l'analyse de messages inconnus.

Saisie par Formulaire

Interface formulaire conviviale qui génère des formulaires de saisie basés sur votre schéma. Prend en charge les messages imbriqués, les énumérations et les champs répétés.

Référence de Syntaxe Proto

Protocol Buffers utilise une syntaxe simple pour définir les types de messages :

syntax = "proto3";

message Person {
    string name = 1;
    int32 id = 2;
    string email = 3;
    
    enum PhoneType {
        MOBILE = 0;
        HOME = 1;
        WORK = 2;
    }
    
    message PhoneNumber {
        string number = 1;
        PhoneType type = 2;
    }
    
    repeated PhoneNumber phones = 4;
}
  • syntax: Spécifie la version protobuf (proto2 ou proto3)
  • message: Définit un type de message avec des champs
  • field: Chaque champ a un type, un nom et un numéro unique
  • enum: Définit les types d'énumération
  • repeated: Marque un champ comme répété (tableau/liste)
  • optional: Marque un champ comme optionnel (proto3)

Types Scalaires

Protocol Buffers prend en charge divers types scalaires :

Type Description Défaut
int32, int64Entiers signés (encodage de longueur variable)0
uint32, uint64Entiers non signés0
sint32, sint64Entiers signés avec encodage ZigZag (efficace pour les nombres négatifs)0
fixed32, fixed64Entiers non signés à largeur fixe (4 ou 8 octets)0
sfixed32, sfixed64Entiers signés à largeur fixe (4 ou 8 octets)0
float, doubleNombres à virgule flottante (32 ou 64 bits)0.0
boolValeurs booléennes (vrai/faux)false
stringChaînes de texte encodées UTF-8""
bytesDonnées binaires arbitrairesempty

Types de Fil

Protobuf utilise des types de fil pour déterminer comment lire les valeurs des données binaires :

Type de Fil Signification Utilisé Pour
0Varintint32, int64, uint32, uint64, sint32, sint64, bool, enum
164-bitfixed64, sfixed64, double
2Length-delimitedstring, bytes, embedded messages, packed repeated
532-bitfixed32, sfixed32, float

Meilleures Pratiques

  • Utilisez la syntaxe proto3 pour les nouveaux projets - plus simple et plus largement supporté
  • Gardez les numéros de champs stables - ne jamais réutiliser ou modifier les numéros des champs existants
  • Utilisez des noms de champs significatifs qui décrivent clairement les données
  • Réservez les numéros de champs 1-15 pour les champs fréquemment utilisés (ils utilisent 1 octet)
  • Utilisez le mot-clé 'repeated' pour les tableaux/listes de valeurs
  • Définissez des énumérations pour les champs ayant un ensemble fixe de valeurs possibles

Questions Fréquentes

Qu'est-ce que Protocol Buffers (Protobuf) ?

Protocol Buffers est un mécanisme extensible, neutre en termes de langue et de plateforme, pour sérialiser des données structurées. Il ressemble à JSON, mais est plus petit, plus rapide et génère des liaisons linguistiques natives. Il est largement utilisé dans les microservices gRPC.

Comment utiliser cet outil Protobuf en ligne ?

Tout d'abord, collez votre définition de schéma `.proto` dans l'éditeur (ou chargez un exemple). Cliquez sur 'Analyser le schéma' et sélectionnez un type de message. Ensuite, basculez entre les modes 'Encoder' (JSON → Binaire) et 'Décoder' (Binaire → JSON) pour traiter vos données.

Qu'est-ce que le 'Décodage Brut' (Raw Decode) ?

Le décodage brut permet d'inspecter un message Protobuf binaire même sans le fichier `.proto`. Il analyse la structure binaire et affiche les numéros de champ, les types de fil et les valeurs, ce qui est très utile pour le débogage ou la rétro-ingénierie de paquets inconnus.

Mes données sont-elles traitées en toute sécurité ?

Oui. Cet outil fonctionne à 100 % dans votre navigateur via JavaScript (protobuf.js). Vos schémas, données JSON et données binaires ne sont jamais envoyés à nos serveurs, garantissant la confidentialité de vos informations sensibles.

Cas d'Utilisation Courants

  • Communication inter-services dans les microservices (gRPC)
  • Stockage de données et mise en cache
  • Fichiers de configuration
  • Protocoles réseau et API

Références

Menu Rapide

Aucun outil récent