ホームページ  >  記事  >  バックエンド開発  >  golangにprotobufをインストールする方法

golangにprotobufをインストールする方法

PHPz
PHPzオリジナル
2023-04-05 14:36:35862ブラウズ

Golang は最近非常に人気のあるプログラミング言語で、構文がシンプルで理解しやすく、大規模な同時プログラミングに非常に適しています。 Golangではprotobufをインストールすることで効率的なデータ交換を実現できます。

protobuf とは何ですか?

まず、protobuf とは何かを理解する必要があります。 Protobuf は、Google によって開発されたデータ交換フォーマットであり、軽量で効率的なデータのシリアル化方法です。シンプルな構文を使用してデータ構造を定義し、自動生成されたコードを使用してデータ構造を簡単にシリアル化および逆シリアル化できます。 Protobuf はバイナリ エンコーディングを使用するため、データ転送速度が XML や JSON などの形式よりもはるかに高速です。

protobuf をインストールする方法?

Golang をインストールする前に、まず protobuf をインストールする必要があります。したがって、最初に protobuf のコンパイラ protoc をインストールする必要があります。 protobuf は次のアドレスからダウンロードできます:

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

ここでは、protobuf の最新バージョンをインストールすることを選択します。ダウンロードが完了したら、ファイルをローカルで解凍する必要があります。

次に、コンピューターが protoc.exe を正常に見つけられるように環境変数を設定する必要があります。システム環境変数の「Path」に Protobuf ファイルのパスを追加することも、他の方法で環境変数を設定することもできます。環境変数を設定する方法の 1 つは次のとおりです:

1. ターミナルを開きます

2. 次のコマンドを入力して環境変数を追加します:

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

where <PATH_TO_PROTOBUF_FOLDER&gt ; は protobuf フォルダーへのパスです。

インストールが完了したら、ターミナルに次のコマンドを入力して、Protobuf が正しくインストールされているかどうかをテストできます。

protoc --version

Protobuf のバージョン情報が出力された場合は、Protobuf がインストールされていることを意味します。正しくインストールされています。

Golang で protobuf を使用する方法?

protobuf をインストールした後、golang で github.com/golang/protobuf ライブラリを使用できます。このライブラリには、protobuf によって生成された Golang の構造とメソッドが含まれています。まず、ターミナルで次のコマンドを入力して github.com/golang/protobuf をインストールする必要があります:

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

次に、ターミナルで次の手順に従って protobuf を使用できます:

1. .proto ファイルを定義します。 .proto ファイルには、Protobuf を使用してデータ メッセージを定義する構造が含まれています。テキスト エディターを使用して .proto ファイルを作成できます。サンプル コードは次のとおりです:

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

2。protoc コマンドを使用して Golang コードを生成します。これらのコードは、Protobuf データ構造をシリアル化および逆シリアル化できます。コマンド例は次のとおりです:

protoc --go_out=. *.proto

このうち --go_out=. パラメータは、生成されたコードを現在のディレクトリに保存することを指します。 *.proto は、すべての .proto ファイルがコンパイルされることを意味します。この手順では、正しい .proto ファイル パスを指定するように注意してください。

3. 生成されたコードを使用します。生成されたコードでは、各 .proto ファイルによって .pb.go で終わるファイルが生成されます。コードでは、生成されたコードを使用してデータ メッセージの読み取りと書き込みを行うことができます。サンプル コードは次のとおりです:

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

概要

protobuf のインストールと Golang での protobuf の使用は複雑ではなく、上記の手順をマスターするだけで済みます。あなたのプログラミングのキャリアに必ず役立つと思います。

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

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