happytails.ai
Français

Vérificateur de compatibilité Protobuf

Comparez deux versions d’un fichier .proto et repérez les modifications qui rendent incompatibles les messages déjà encodés au format binaire ou JSON. Les numéros supprimés, les changements de type, les champs renommés et les modifications d’énumération sont expliqués individuellement.

Accepte deux fichiers .proto de jusqu’à 1 000 000 caractères chacun, avec au plus 200 000 jetons, 2 000 messages et énumérations, 10 000 champs par message et 32 niveaux de messages imbriqués. La comparaison s’exécute dans votre navigateur, dans un processus de travail en arrière-plan. Les téléchargements comprennent un rapport JSON et un fichier CSV des constats. Version avec laquelle les données existantes ont été écrites. Placez le fichier modifié dans le champ « Nouveau schéma ». Jusqu’à 1 000 000 caractères. Vérifiez les réglages avant de lancer le traitement.

Votre résultat

Signalez un problème ou partagez une idée.

Vérificateur de compatibilité Protobuf
  1. Collez l’ancien fichier .proto dans le champ principal.
  2. Collez la nouvelle version dans le champ « Nouveau schéma ».
  3. Lancez la vérification et examinez les constats, des plus graves aux moins graves.
  4. Téléchargez le rapport JSON ou le fichier CSV.

À savoir

Accepte deux fichiers .proto de jusqu’à 1 000 000 caractères chacun, avec au plus 200 000 jetons, 2 000 messages et énumérations, 10 000 champs par message et 32 niveaux de messages imbriqués. La comparaison s’exécute dans votre navigateur, dans un processus de travail en arrière-plan. Les téléchargements comprennent un rapport JSON et un fichier CSV des constats.

Niveaux de gravité

Une modification est incompatible lorsque les anciens et nouveaux programmes peuvent mal interpréter les messages binaires : suppression d’un champ dont le numéro n’est pas réservé, réutilisation d’un numéro d’une plage réservée, changement de type avec un encodage binaire différent, passage entre un champ singulier et un champ répété, suppression d’un message ou d’une énumération, ou renumérotation d’une valeur d’énumération. Une modification est incompatible pour JSON lorsque les données binaires restent valides, mais que le format JSON ou texte change, par exemple après le renommage d’un champ ou d’une valeur d’énumération. Les avertissements signalent les changements qui restent compatibles au format binaire mais peuvent tronquer ou réinterpréter les valeurs, comme int32 vers int64, ou le déplacement d’un champ dans un oneof ou hors de celui-ci.

Méthode de comparaison

Les messages et les énumérations sont associés d’après leur nom sans le nom du paquet, et les champs d’après leur numéro, conformément aux règles du guide du langage protobuf pour la mise à jour d’un type de message. Les messages et les énumérations imbriqués dans d’autres messages sont également comparés.

Fonctionnalités non prises en charge

L’analyseur lit les fichiers proto2 et proto3 contenant des messages, des énumérations, oneof, des maps, des types imbriqués, des numéros et noms réservés ainsi que des options de champ. Les imports sont répertoriés mais ne sont pas résolus; les types provenant d’autres fichiers sont donc comparés par leur nom uniquement. Les éditions, groupes et extensions sont rejetés. Les services sont ignorés.

Pour continuer