Heim  >  Artikel  >  Backend-Entwicklung  >  So installieren Sie Protobuf in Golang

So installieren Sie Protobuf in Golang

PHPz
PHPzOriginal
2023-04-05 14:36:35862Durchsuche

Golang ist in letzter Zeit eine sehr beliebte Programmiersprache. Die Syntax ist einfach und leicht zu verstehen und eignet sich sehr gut für die gleichzeitige Programmierung in großem Maßstab. In Golang können wir durch die Installation von Protobuf einen effizienten Datenaustausch erreichen.

Was ist Protobuf?

Zuerst müssen wir verstehen, was Protobuf ist. Protobuf ist ein von Google entwickeltes Datenaustauschformat. Es handelt sich um eine leichte und effiziente Datenserialisierungsmethode. Es verwendet eine einfache Syntax zum Definieren von Datenstrukturen und kann Datenstrukturen mithilfe automatisch generierten Codes einfach serialisieren und deserialisieren. Da Protobuf binäre Kodierung verwendet, ist seine Datenübertragungsgeschwindigkeit viel schneller als bei Formaten wie XML und JSON.

Wie installiere ich Protobuf?

Bevor wir Golang installieren, müssen wir zuerst Protobuf installieren. Daher müssen wir zuerst das Compilerprotokoll von Protobuf installieren. Protobuf kann von der folgenden Adresse heruntergeladen werden:

https://github.com/protocolbuffers/protobuf/releases

Hier entscheiden wir uns für die Installation der neuesten Version von Protobuf. Nachdem der Download abgeschlossen ist, müssen wir die Datei lokal entpacken.

Als nächstes müssen wir die Umgebungsvariablen festlegen, damit unser Computer protoc.exe normal finden kann. Wir können den Protobuf-Dateipfad zum „Pfad“ der Systemumgebungsvariablen hinzufügen oder die Umgebungsvariable auf andere Weise festlegen. Hier ist eine der Methoden zum Festlegen von Umgebungsvariablen:

1. Öffnen Sie das Terminal

2. Geben Sie den folgenden Befehl ein, um Umgebungsvariablen hinzuzufügen:

export PB_FOLDER=<PATH_TO_PROTOBUF_FOLDER>
export PATH="$PATH:$PB_FOLDER/bin"

wobei <PATH_TO_PROTOBUF_FOLDER> der Pfad zum Protobuf-Ordner ist.

Nachdem die Installation abgeschlossen ist, können wir im Terminal den folgenden Befehl eingeben, um zu testen, ob Protobuf korrekt installiert ist:

protoc --version

Wenn die Versionsinformationen von Protobuf ausgegeben werden, bedeutet dies, dass Protobuf korrekt installiert wurde.

Wie verwende ich Protobuf in Golang?

Nach der Installation von Protobuf können wir die Bibliothek github.com/golang/protobuf in Golang verwenden, die die von Protobuf generierten Golang-Strukturen und -Methoden enthält. Zuerst müssen wir github.com/golang/protobuf installieren, indem wir den folgenden Befehl im Terminal eingeben:

go get -u github.com/golang/protobuf/protoc-gen-go

Als nächstes können wir protobuf verwenden, indem wir die Schritte über das Terminal ausführen:

1 Definieren Sie die .proto-Datei. Die .proto-Datei enthält die Struktur, die die Datennachricht mithilfe von Protobuf definiert. Wir können den Texteditor zum Schreiben von .proto-Dateien verwenden. Der Beispielcode lautet wie folgt:

syntax = "proto3";
message Person {
    string name = 1;
    int32 age = 2;
    double weight = 3;
    repeated string hobbies = 4;
}

2 Verwenden Sie den Befehl protoc, um Golang-Code zu generieren. Diese Codes können Protobuf-Datenstrukturen serialisieren und deserialisieren. Der Beispielbefehl lautet wie folgt:

protoc --go_out=. *.proto

Darunter bezieht sich der Parameter --go_out= auf das Speichern des generierten Codes im aktuellen Verzeichnis. *.proto bedeutet, dass alle .proto-Dateien kompiliert werden. Achten Sie in diesem Schritt darauf, den korrekten .proto-Dateipfad anzugeben.

3. Verwenden Sie den generierten Code. Im generierten Code generiert jede .proto-Datei eine Datei mit der Endung .pb.go. Im Code können wir den generierten Code zum Lesen und Schreiben von Datennachrichten verwenden. Der Beispielcode lautet wie folgt:

package main

import (
    "fmt"
    "log"

    pb "github.com/USERNAME/REPO/DIR"
    "github.com/golang/protobuf/proto"
)

func main() {
    p := &pb.Person{
        Name:    "Alice",
        Age:     22,
        Weight:  55.5,
        Hobbies: []string{"singing", "dancing"},
    }

    data, err := proto.Marshal(p)
    if err != nil {
        log.Fatal("marshaling error: ", err)
    }

    fmt.Printf("Serialized: %v\n", data)

    var person pb.Person
    err = proto.Unmarshal(data, &person)
    if err != nil {
        log.Fatal("unmarshaling error: ", err)
    }

    fmt.Printf("Person: %#v\n", person)
}

Zusammenfassung

Die Installation von Protobuf und die Verwendung von Protobuf in Golang ist nicht kompliziert. Beherrschen Sie einfach die oben genannten Schritte. Ich glaube, dass es Ihrer Programmierkarriere auf jeden Fall eine große Hilfe sein wird.

Das obige ist der detaillierte Inhalt vonSo installieren Sie Protobuf in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn