Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara memasang protobuf di golang

Cara memasang protobuf di golang

PHPz
PHPzasal
2023-04-05 14:36:35918semak imbas

Golang ialah bahasa pengaturcaraan yang sangat popular baru-baru ini Sintaksnya ringkas dan mudah difahami, dan ia sangat sesuai untuk pengaturcaraan serentak berskala besar. Di Golang, kami boleh mencapai pertukaran data yang cekap dengan memasang protobuf.

Apakah protobuf?

Pertama sekali, kita perlu memahami apa itu protobuf. Protobuf ialah format pertukaran data yang dibangunkan oleh Google Ia adalah kaedah penyiaran data yang ringan dan cekap. Ia menggunakan sintaks mudah untuk mentakrifkan struktur data dan boleh mensiri dan menyahsiri struktur data dengan mudah dengan menggunakan kod yang dijana secara automatik. Oleh kerana Protobuf menggunakan pengekodan binari, kelajuan penghantaran datanya jauh lebih pantas daripada format seperti XML dan JSON.

Bagaimana untuk memasang protobuf?

Sebelum memasang Golang, kita perlu memasang protobuf terlebih dahulu. Oleh itu, kita perlu memasang protoc pengkompil protobuf terlebih dahulu. protobuf boleh dimuat turun dari alamat berikut:

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

Di sini, kami memilih untuk memasang versi terkini protobuf. Selepas muat turun selesai, kami perlu menyahzip fail secara setempat.

Seterusnya, kita perlu menetapkan pembolehubah persekitaran supaya komputer kita dapat mencari protoc.exe secara normal. Kita boleh menambah laluan fail Protobuf dalam "Laluan" pembolehubah persekitaran sistem, atau menetapkan pembolehubah persekitaran dengan cara lain. Berikut ialah salah satu kaedah untuk menetapkan pembolehubah persekitaran:

1 Buka terminal

2 Masukkan arahan berikut untuk menambah pembolehubah persekitaran:

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

di mana <PATH_TO_PROTOBUF_FOLDER> ialah Laluan ke folder protobuf.

Selepas pemasangan selesai, kita boleh memasukkan arahan berikut dalam terminal untuk menguji sama ada Protobuf dipasang dengan betul:

protoc --version

Jika maklumat versi Protobuf adalah output, ia bermakna bahawa Protobuf telah dipasang dengan betul.

Bagaimana cara menggunakan protobuf di Golang?

Selepas memasang protobuf, kita boleh menggunakan perpustakaan github.com/golang/protobuf di Golang, yang mengandungi struktur dan kaedah Golang yang dihasilkan oleh protobuf. Mula-mula, kita perlu memasang github.com/golang/protobuf dengan memasukkan arahan berikut dalam terminal:

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

Seterusnya, kita boleh menggunakan protobuf dengan mengikuti langkah-langkah dalam terminal:

1. Tentukan fail .proto. Fail .proto mengandungi struktur yang mentakrifkan mesej data menggunakan Protobuf. Kita boleh menggunakan editor teks untuk menulis fail .proto Kod sampel adalah seperti berikut:

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

2. Kod ini boleh mensiri dan menyahsiri struktur data Protobuf. Perintah contoh adalah seperti berikut:

protoc --go_out=. *.proto

Antaranya, parameter --go_out= bermaksud menyimpan kod yang dijana dalam direktori semasa. *.proto bermaksud semua fail .proto akan disusun. Dalam langkah ini, berhati-hati untuk menentukan laluan fail .proto yang betul.

3. Gunakan kod yang dihasilkan. Dalam kod yang dijana, setiap fail .proto menjana fail yang berakhir dengan .pb.go. Dalam kod, kita boleh menggunakan kod yang dijana untuk membaca dan menulis mesej data. Kod sampel adalah seperti berikut:

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

Ringkasan

Memasang protobuf dan menggunakan protobuf di Golang tidaklah rumit, cuma kuasai langkah di atas. Saya percaya ia pasti akan sangat membantu kerjaya pengaturcaraan anda.

Atas ialah kandungan terperinci Cara memasang protobuf di golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn