ホームページ >バックエンド開発 >Golang >golang protobuf のインストール

golang protobuf のインストール

WBOY
WBOYオリジナル
2023-05-18 21:34:361222ブラウズ

Golang は現在非常に人気のあるプログラミング言語であり、Google が主に推進しているプログラミング言語の 1 つでもあります。 Google は開発プロセス中に protobuf (プロトコル バッファー) を使用するため、golang も protobuf のサポートを提供します。 protobuf は、データ交換と永続化に使用できる軽量のデータシリアル化プロトコルです。 golang で protobuf を使用すると、プログラムのパフォーマンスが向上し、安定性が向上します。この記事ではgolang protobufのインストール方法を紹介します。

  1. protobuf のインストール
    Golang で使用される protobuf バージョンを最初にインストールする必要があります。次の方法でインストールできます:

まず、対応するバージョンのprotobuf ダウンロード アドレスは次のとおりです: https://github.com/protocolbuffers/protobuf/releases

protobuf バージョン 3.18.0 を例として、ダウンロード後に解凍します:

tar -xzf protobuf-all-3.18.0.tar.gz
cd protobuf-3.18.0

protobuf ディレクトリに移動し、次のコマンドを実行してインストールします:

./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.

注: 「libtool: install: /usr/bin/install -c .libs/x86_64-linux-gnu/libprotobuf.so.25.0」が表示された場合は、 0 /usr/local/lib/libprotobuf.so.25.0.0」は無視できます。

インストールが完了したら、次のコマンドを実行して確認します。

protoc --version

インストールが成功したことを示す次の情報が表示されます。

libprotoc 3.18.0
  1. golang をインストールするprotobuf プラグイン
    protobuf の使用には必要があります golang に protobuf プラグインをインストールするには、次のコマンドを使用してインストールできます。
go get -u github.com/golang/protobuf/protoc-gen-go

インストールが完了したら、インストールは成功しました:

which protoc-gen-go

インストールが成功したことを示す次の情報が表示されます:

$GOPATH/bin/protoc-gen-go
  1. Golang protobuf プラグインを使用する
    protobuf プラグインをインストールした後、golang の protobuf パッケージを使用できます。 golang で書かれた protobuf ファイルを golang コードに変換して使用するプロセスは次のとおりです。

最初のステップは、protobuf ファイルを作成することです。例:

syntax = "proto3";

message Person {
  string name = 1;
  int32 age = 2;
  string address = 3;
}

2 番目のステップでは、protobuf コンパイラを使用して protobuf ファイルを golang コードに変換します。

protoc --go_out=. person.proto

実行後、person.pb.go ファイルが生成され、ファイルの内容は次のとおりです。

package main

import (
  "fmt"
  "github.com/golang/protobuf/proto"
)

type Person struct {
  Name     string  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  Age      int32   `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
  Address  string  `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
}

func main() {
  person := &Person{
    Name: "John",
    Age:     25,
    Address: "New york",
  }
  data, _ := proto.Marshal(person)
  fmt.Println(data)
  newperson := &Person{}
  _ = proto.Unmarshal(data, newperson)
  fmt.Printf("Name: %s, Age: %d, Address: %s
", newperson.Name, newperson.Age, newperson.Address)
}

3 番目のステップは、生成されたコードを開発に使用することです。 main 関数では、Person オブジェクトをシリアル化および逆シリアル化して出力します。

概要:
golang で protobuf を使用する場合は、最初に protobuf と golang protobuf プラグインをインストールする必要があります。 protobufファイルを書くことで、protobufコンパイラを使ってgolangコードに変換して利用します。 protobuf を使用すると、プログラムのパフォーマンスと安定性が向上します。

以上がgolang protobuf のインストールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。