protobuf の簡単な紹介と Ubuntu 16.04 環境でのインストールチュートリアル

protobuf の簡単な紹介と Ubuntu 16.04 環境でのインストールチュートリアル

protobufの簡単な紹介

Protobuf は、Google のオープンソースのシリアル化プロトコル フレームワークで、XML や JSON に似た構造を持っています。バイナリと高効率が特長です。主に通信プロトコルやデータ ストレージで使用され、構造化データを表現する方法の 1 つと考えられています。

protobufの利点

  • 誰もが使っている、少なくとも「気取った」人たちは使っている[時代の流れに遅れないようにしないといけない]
  • パフォーマンスが良いという人もいますが、バイナリ形式です [大きなプロジェクトではこれを使用しないのは恥ずかしいです]
  • さまざまな言語のクロスプラットフォームサポート、後方互換性と前方互換性は非常に強力です(結局のところ、Googleが使用しています)

protobufの欠点

  • バイナリ形式なので一般の人には読めない
  • 自己紹介の欠如

XML は自己記述的ですが、protobuf 形式はそうではありません。バイナリ ファイルが渡された場合、それが何を行うのかはわかりません。

Protobufの使用手順

  • 独自のデータ構造形式(.pro)ソースファイルを定義する
  • protobufが提供するコンパイラを使用してソースファイルをコンパイルします。
  • protobuf goのAPIを使用して情報を読み書きする

たとえば、名前やメールの属性を含む構造化データ人物を定義します

XMLで定義

<人>
 <name>張さん</name>
 <メール>[email protected]</メール>
<人>

protobufはこれを定義します

人{
 名前:"zhangsan"
 メールアドレス:"[email protected]"
}

これはjsonで定義されています

{
 "人":{
  "名前":"張さん",
  "メールアドレス":"[email protected]"
 }
}

protobufの構文

メッセージの定義

メッセージ タイプは要求または応答メッセージの形式を定義し、複数のタイプを含めることができます。

サービス

RPC でメッセージ タイプを使用する必要がある場合は、.proto ファイルで RPC サービス インターフェイスを定義する必要があります。プロトコル バッファー コンパイラは、選択した言語に基づいてサービス インターフェイス コードを生成します。

ProtobufはUbuntu [バージョン16.04]にインストールされています

公式アドレス: https://github.com/google/protobuf/blob/master/src/README.md

インストールのコマンドラインは次のとおりです。

$ sudo apt-get install autoconf automake libtool curl make g++ unzip
$ git クローン https://github.com/google/protobuf.git
$ cd プロトコルバッファ
$ git サブモジュールの更新 --init --recursive
$ ./autogen.sh
$ ./configure
$ 作る
$ チェックする
$ sudo インストール
$ sudo ldconfig # 共有ライブラリのキャッシュを更新します。

作成後のスクリーンショット

宛十八微服務

コンパイルは問題なくスムーズに完了しました。以下のバージョンを確認してみましょう。

$ protoc --version12

宛十八微服務

要約する

上記は、protobuf の簡単な紹介と Ubuntu 16.04 環境でのインストール チュートリアルです。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • UbuntuにProtobuf 3をインストールするための詳細なチュートリアル

<<:  JavaScript関数におけるこのポイントの問題の詳細な説明

>>:  MySQL マスタースレーブレプリケーション 読み書き分離の設定方法の詳細説明

推薦する

Vueはログイン認証コードを実装する

この記事では、ログイン認証コードを実装するためのvueの具体的なコードを例として紹介します。具体的な...

HTML フォーマットの json のサンプルコード

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...

Linux で pyenv をインストールする方法

前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...

jsを使用してシンプルな虫眼鏡効果を実現します

この記事では、簡単な虫眼鏡効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な内...

iframe の src を about:blank に設定した後の詳細

iframe の src を 'about:blank' に設定した後、"...

JavaScript シミュレーション計算機

この記事では、JavaScriptシミュレーション計算機の具体的なコードを参考までに紹介します。具体...

Angularデータバインディングとその実装の詳細な説明

目次序文データバインディングとは何ですか? Angular のデータバインディングの種類一方向データ...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...

ウェブデザインのためのオンライン開発ツール10選の紹介

1. オンラインテキストジェネレーターBlindTextGenerator: デザイナーにとって、こ...

MySQL 内部結合の使用例 (必読)

文法規則 列名を選択 テーブル名1から INNER JOIN テーブル名2 ON テーブル名1.列名...

Ubuntu 18.0.4 MySQL 8.0.20 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.20 のインストールおよび設定方法は、参考としてグラフィック チュートリアルにま...

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

CSSの高さの崩壊問題についての簡単な説明

パフォーマンス例えば: HTML: <div class="first"&...

MySQL で特殊文字を含むデータベース名を作成する方法の例

序文この記事では、MySQL で特殊文字を使用してデータベース名を作成する方法について説明します。こ...

MySQLデータベースの基本構文と操作

MySQLデータベースの基本構文DDL操作データベース作成構文: create database デ...