Protocol Buffers-Werkzeug
Protocol Buffers-Nachrichten codieren, decodieren und validieren
Proto Schema
Schema Informationen
Eingabe
Schema parsen und Nachrichtentyp auswählen, um Formularfelder zu generieren
Ausgabe
Raw Felder
| Feld-Nr. | Wire Typ | Wert |
|---|
Protocol Buffers Dokumentation
Was ist Protocol Buffers?
Protocol Buffers (Protobuf) ist ein sprachneutraler, plattformunabhängiger erweiterbarer Mechanismus zum Serialisieren strukturierter Daten, entwickelt von Google. Es ist kleiner, schneller und einfacher als XML und JSON für die Datenserialisierung.
Hauptmerkmale
- Sprachneutral und plattformunabhängig
- Kleiner und schneller als XML/JSON
- Starke Typisierung mit Schema-Definition
- Rückwärts- und Vorwärtskompatibilität
- Automatische Code-Generierung
- Effiziente binäre Codierung
Verwendung dieses Tools
- Geben Sie Ihre .proto Schema-Definition im Schema-Editor ein
- Klicken Sie auf 'Schema Parsen', um das Schema zu validieren und zu parsen
- Wählen Sie den Nachrichtentyp aus, mit dem Sie arbeiten möchten
- Zum Codieren: Geben Sie JSON-Daten ein und klicken Sie auf 'Codieren'
- Zum Decodieren: Geben Sie Binärdaten ein und klicken Sie auf 'Decodieren'
- Verwenden Sie Raw Decodierung, um Binärdaten ohne Schema zu analysieren
Tool-Funktionen
Codieren
Konvertieren Sie JSON-Daten in das binäre Protocol Buffers Format. Unterstützt formularbasierte Eingabe für einfache Dateneingabe mit Typvalidierung.
Decodieren
Konvertieren Sie Protocol Buffers Binärdaten zurück in lesbares JSON-Format. Unterstützt Base64-, Hex- und C-Stil-Hex-Eingabeformate.
Raw Decodierung
Analysieren Sie Protobuf-Binärdaten ohne Schema. Nützlich für Debugging, Reverse Engineering oder die Analyse unbekannter Nachrichten.
Formular-Eingabe
Benutzerfreundliche Formularoberfläche, die Eingabeformulare basierend auf Ihrem Schema generiert. Unterstützt verschachtelte Nachrichten, Enums und wiederholte Felder.
Proto Syntax Referenz
Protocol Buffers verwendet eine einfache Syntax zur Definition von Nachrichtentypen:
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: Gibt die Protobuf-Version an (proto2 oder proto3)message: Definiert einen Nachrichtentyp mit Feldernfield: Jedes Feld hat einen Typ, Namen und eine eindeutige Nummerenum: Definiert Aufzählungstypenrepeated: Markiert ein Feld als wiederholt (Array/Liste)optional: Markiert ein Feld als optional (proto3)
Skalare Typen
Protocol Buffers unterstützt verschiedene skalare Typen:
| Typ | Beschreibung | Standard |
|---|---|---|
| int32, int64 | Vorzeichenbehaftete Ganzzahlen (variable Länge) | 0 |
| uint32, uint64 | Vorzeichenlose Ganzzahlen | 0 |
| sint32, sint64 | Vorzeichenbehaftete Ganzzahlen mit ZigZag-Codierung (effizient für negative Zahlen) | 0 |
| fixed32, fixed64 | Ganzzahlen mit fester Breite (4 oder 8 Bytes, vorzeichenlos) | 0 |
| sfixed32, sfixed64 | Ganzzahlen mit fester Breite (4 oder 8 Bytes, vorzeichenbehaftet) | 0 |
| float, double | Gleitkommazahlen (32 oder 64 Bit) | 0.0 |
| bool | Boolesche Werte (wahr/falsch) | false |
| string | UTF-8 kodierte Textzeichenfolgen | "" |
| bytes | Beliebige Binärdaten | empty |
Wire Typen
Protobuf verwendet Wire-Typen, um zu bestimmen, wie Werte aus Binärdaten gelesen werden:
| Wire Typ | Bedeutung | Verwendet für |
|---|---|---|
| 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 |
Best Practices
- Verwenden Sie proto3-Syntax für neue Projekte - sie ist einfacher und breiter unterstützt
- Halten Sie Feldnummern stabil - verwenden Sie niemals Nummern für bestehende Felder wieder oder ändern Sie diese
- Verwenden Sie aussagekräftige Feldnamen, die die Daten klar beschreiben
- Reservieren Sie Feldnummern 1-15 für häufig verwendete Felder (sie verwenden 1 Byte)
- Verwenden Sie das 'repeated' Schlüsselwort für Arrays/Listen von Werten
- Definieren Sie Enums für Felder mit einem festen Satz möglicher Werte
Häufig gestellte Fragen
Was ist Protocol Buffers (Protobuf)?
Protocol Buffers ist ein sprach- und plattformneutraler, erweiterbarer Mechanismus zur Serialisierung strukturierter Daten. Es ähnelt JSON, ist jedoch kleiner, schneller und generiert native Sprachbindungen. Es wird häufig in gRPC-Microservices verwendet.
Wie benutze ich dieses Online-Protobuf-Tool?
Fügen Sie zuerst Ihre `.proto`-Schemadefinition in den Editor ein (oder laden Sie ein Beispiel). Klicken Sie auf 'Schema Parsen' und wählen Sie einen Nachrichtentyp aus. Wechseln Sie dann zwischen den Modi 'Codieren' (JSON → Binär) und 'Decodieren' (Binär → JSON), um Ihre Daten zu verarbeiten.
Was ist 'Raw Decode' (Rohdaten-Decodierung)?
Raw Decode ermöglicht es Ihnen, eine binäre Protobuf-Nachricht zu inspizieren, auch wenn Sie die `.proto`-Datei nicht haben. Es analysiert die binäre Struktur und zeigt Feldnummern, Wire Types und Werte an, was für das Debuggen oder Reverse-Engineering unbekannter Pakete äußerst nützlich ist.
Sind meine Daten sicher?
Ja. Dieses Tool läuft zu 100 % in Ihrem Browser mit JavaScript (protobuf.js). Ihre Schemas, JSON-Daten und Binärdaten werden niemals an unsere Server gesendet, wodurch die Vertraulichkeit Ihrer sensiblen Informationen gewährleistet ist.
Häufige Anwendungsfälle
- Inter-Service-Kommunikation in Microservices (gRPC)
- Datenspeicherung und Caching
- Konfigurationsdateien
- Netzwerkprotokolle und APIs
Referenzen
Verwandte Tools
JSON-Formatierer
Formatieren und validieren Sie JSON-Daten für verbesserte Lesbarkeit und Debugging
Schema zu SQL DDL Generator
Konvertieren Sie CSV/JSON-Daten in SQL DDL CREATE TABLE-Anweisungen mit MySQL, PostgreSQL-Unterstützung und automatischer Datentypableitung
JSON YAML Konverter
Konvertierung zwischen JSON- und YAML-Formaten mit benutzerdefinierter Einrückung und Flow-/Block-Stil-Unterstützung
Base64-Kodierer/Dekodierer
Schnelles Kodieren und Dekodieren von Base64-Strings mit Unterstützung für Text- und Dateikonvertierung
XML-Formatierer
Formatieren und validieren Sie XML-Daten mit Syntaxhervorhebung
Zahlenbasis-Konverter
Konvertieren zwischen binären, oktalen, dezimalen und hexadezimalen Zahlensystemen mit Unterstützung für benutzerdefinierte Basen (2-36)