Maison  >  Article  >  développement back-end  >  Comment installer Protobuf dans Golang

Comment installer Protobuf dans Golang

PHPz
PHPzoriginal
2023-04-05 14:36:35905parcourir

Golang est un langage de programmation très populaire récemment. Sa syntaxe est simple et facile à comprendre, et il est très adapté à la programmation simultanée à grande échelle. Dans Golang, nous pouvons réaliser un échange de données efficace en installant protobuf.

Qu'est-ce que protobuf ?

Tout d'abord, nous devons comprendre ce qu'est protobuf. Protobuf est un format d'échange de données développé par Google. Il s'agit d'une méthode de sérialisation de données légère et efficace. Il utilise une syntaxe simple pour définir les structures de données et peut facilement sérialiser et désérialiser les structures de données en utilisant du code généré automatiquement. Étant donné que Protobuf utilise un codage binaire, sa vitesse de transmission des données est beaucoup plus rapide que celle des formats tels que XML et JSON.

Comment installer protobuf ?

Avant d'installer Golang, nous devons d'abord installer protobuf. Par conséquent, nous devons d’abord installer le protocole du compilateur de protobuf. protobuf peut être téléchargé à l'adresse suivante :

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

Ici, nous choisissons d'installer la dernière version de protobuf. Une fois le téléchargement terminé, nous devons décompresser le fichier localement.

Ensuite, nous devons définir les variables d'environnement pour que notre ordinateur puisse trouver protoc.exe normalement. Nous pouvons ajouter le chemin du fichier Protobuf dans le "Chemin" de la variable d'environnement système, ou définir la variable d'environnement d'une autre manière. Voici l'une des méthodes pour définir les variables d'environnement :

1. Ouvrez le terminal

2. Entrez la commande suivante pour ajouter des variables d'environnement :

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

<PATH_TO_PROTOBUF_FOLDER> est le chemin d'accès au dossier protobuf.

Une fois l'installation terminée, nous pouvons entrer la commande suivante dans le terminal pour tester si Protobuf est correctement installé :

protoc --version

Si les informations de version de Protobuf sont affichées, cela signifie que Protobuf a été correctement installé.

Comment utiliser protobuf dans Golang ?

Après avoir installé protobuf, nous pouvons utiliser la bibliothèque github.com/golang/protobuf dans Golang, qui contient les structures et méthodes Golang générées par protobuf. Tout d'abord, nous devons installer github.com/golang/protobuf en entrant la commande suivante dans le terminal :

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

Ensuite, nous pouvons utiliser protobuf en suivant les étapes via le terminal :

1 Définissez le fichier .proto. Le fichier .proto contient la structure qui définit le message de données à l'aide de Protobuf. Nous pouvons utiliser l'éditeur de texte pour écrire des fichiers .proto. L'exemple de code est le suivant :

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

2. Utilisez la commande protoc pour générer du code Golang. Ces codes peuvent sérialiser et désérialiser les structures de données Protobuf. L'exemple de commande est le suivant :

protoc --go_out=. *.proto

Parmi eux, le paramètre --go_out= fait référence au stockage du code généré dans le répertoire courant. *.proto signifie que tous les fichiers .proto seront compilés. Dans cette étape, veillez à spécifier le chemin d'accès correct au fichier .proto.

3. Utilisez le code généré. Dans le code généré, chaque fichier .proto génère un fichier se terminant par .pb.go. Dans le code, nous pouvons utiliser le code généré pour lire et écrire des messages de données. L'exemple de code est le suivant :

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)
}

Résumé

Installer protobuf et utiliser protobuf dans Golang n'est pas compliqué, maîtrisez simplement les étapes ci-dessus. Je pense que cela sera certainement d'une grande aide pour votre carrière de programmeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn