Outil Protocol Buffers
Encoder, décoder et valider les messages Protocol Buffers
Schéma Proto
Informations du Schéma
Entrée
Analysez le schéma et sélectionnez un type de message pour générer les champs du formulaire
Sortie
Champs Bruts
| N° Champ | Type de Fil | Valeur |
|---|
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
- Entrez votre définition de schéma .proto dans l'éditeur
- Cliquez sur Analyser le Schéma pour valider et analyser
- Sélectionnez le type de message souhaité
- Pour encoder : Entrez les données JSON et cliquez sur Encoder
- Pour décoder : Entrez les données binaires et cliquez sur Décoder
- 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 champsfield: Chaque champ a un type, un nom et un numéro uniqueenum: Définit les types d'énumérationrepeated: 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, int64 | Entiers signés (encodage de longueur variable) | 0 |
| uint32, uint64 | Entiers non signés | 0 |
| sint32, sint64 | Entiers signés avec encodage ZigZag (efficace pour les nombres négatifs) | 0 |
| fixed32, fixed64 | Entiers non signés à largeur fixe (4 ou 8 octets) | 0 |
| sfixed32, sfixed64 | Entiers signés à largeur fixe (4 ou 8 octets) | 0 |
| float, double | Nombres à virgule flottante (32 ou 64 bits) | 0.0 |
| bool | Valeurs booléennes (vrai/faux) | false |
| string | Chaînes de texte encodées UTF-8 | "" |
| bytes | Données binaires arbitraires | empty |
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 |
|---|---|---|
| 0 | Varint | int32, int64, uint32, uint64, sint32, sint64, bool, enum |
| 1 | 64-bit | fixed64, sfixed64, double |
| 2 | Length-delimited | string, bytes, embedded messages, packed repeated |
| 5 | 32-bit | fixed32, 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
Outils Connexes
Formateur JSON
Formatez et validez les données JSON pour une meilleure lisibilité et débogage
Générateur SQL DDL depuis Schéma
Convertir les données CSV/JSON en instructions CREATE TABLE SQL DDL, support MySQL, PostgreSQL avec inférence automatique des types
Convertisseur JSON YAML
Conversion bidirectionnelle entre JSON et YAML avec indentation personnalisée et styles flux/bloc
Encodeur/Décodeur Base64
Encodez et décodez rapidement des chaînes Base64, prenant en charge la conversion de texte et de fichiers
Formateur XML
Formater et valider les données XML avec mise en évidence de la syntaxe
Convertisseur de Base
Convertir entre les systèmes binaire, octal, décimal et hexadécimal avec support de bases personnalisées (2-36)