CoderTools

Protocol Buffers-Werkzeug

Protocol Buffers-Nachrichten codieren, decodieren und validieren

Proto Schema

Beispiel-Schemas:

Eingabe

Schema parsen und Nachrichtentyp auswählen, um Formularfelder zu generieren

Ausgabe

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

  1. Geben Sie Ihre .proto Schema-Definition im Schema-Editor ein
  2. Klicken Sie auf 'Schema Parsen', um das Schema zu validieren und zu parsen
  3. Wählen Sie den Nachrichtentyp aus, mit dem Sie arbeiten möchten
  4. Zum Codieren: Geben Sie JSON-Daten ein und klicken Sie auf 'Codieren'
  5. Zum Decodieren: Geben Sie Binärdaten ein und klicken Sie auf 'Decodieren'
  6. 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 Feldern
  • field: Jedes Feld hat einen Typ, Namen und eine eindeutige Nummer
  • enum: Definiert Aufzählungstypen
  • repeated: 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, int64Vorzeichenbehaftete Ganzzahlen (variable Länge)0
uint32, uint64Vorzeichenlose Ganzzahlen0
sint32, sint64Vorzeichenbehaftete Ganzzahlen mit ZigZag-Codierung (effizient für negative Zahlen)0
fixed32, fixed64Ganzzahlen mit fester Breite (4 oder 8 Bytes, vorzeichenlos)0
sfixed32, sfixed64Ganzzahlen mit fester Breite (4 oder 8 Bytes, vorzeichenbehaftet)0
float, doubleGleitkommazahlen (32 oder 64 Bit)0.0
boolBoolesche Werte (wahr/falsch)false
stringUTF-8 kodierte Textzeichenfolgen""
bytesBeliebige Binärdatenempty

Wire Typen

Protobuf verwendet Wire-Typen, um zu bestimmen, wie Werte aus Binärdaten gelesen werden:

Wire Typ Bedeutung Verwendet für
0Varintint32, int64, uint32, uint64, sint32, sint64, bool, enum
164-bitfixed64, sfixed64, double
2Length-delimitedstring, bytes, embedded messages, packed repeated
532-bitfixed32, 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

Schnellmenü

Keine aktuellen Tools