Buffers(ProtoBuf)という技術があるらしいということを最近知った。データの送受信に関係する技術らしいし、プロトコルなんて言われたらネットワーク屋(やめるけど)として知ってなきゃならないかなと思ってちょっとだけ調べたのでまとめておく。ProtoBufについて本気で調べたくてこの記事に辿り着いた方のことを思うと、本当に申し訳ない。何よそではデータシリアライザとかって言葉で紹介されている。シリアライザって言われてもピンと来なかったんだけど、あるフォーマットに基づいたデータを効率よくやりとりするための技術と解釈した。gRPCで使われている。データの送受信のためのシリアライズ、デシリアライズチュートリアルprotocのビルド、インストールprotocコマンドをインストールする。protocコマンドは、後で作るスキーマ定義ファイルから各言語向けのライブラリを生成できる。ldconfig.protoファイルの作成やりとりするデータのスキーマ(:=プロトコル)を定義する。文法はよく分ってないけど、フィールドの名前と、ユニークなIDを定義すれば最低限いいっぽい。3;}Python用ライブラリの生成さっきビルドしたprotocコマンドで、Python用のライブラリを生成する。protobuf_chat.protoあとは生成されたライブラリをロードして、データをやりとりするコードを書けばよい。Pythonでは追加で以下のライブラリが必要だった。google-api-python-clientだいたいの使い方.protoファイルで定義した通りの構造体+シリアライズ、デシリアライズのためのメソッドがある、という感じ。Alice.'>>>作ったもの名前だけで食いついたものの、分散システム作ったりとかしてないので、とりあえずsocketと組み合わせて簡易なチャットを作って供養した。github.com送信側は文字列をProtoBufでシリアライズして送信し、受信側ではデシリアライズして表示する。文字列がどのようにシリアライズされているのか分かるようにした。Bye.こうしてみると、シリアライズされた文字列は可読性が低いものの、圧縮されているので、JSONとかをそのまま送るのと比べて転送効率がいいんだろうな。内部通信向けとも紹介されていたので、そういうことだろう。コマンドのページャを無効にする月別アーカイブ参加グループプログラミングはてなブログをはじめよう!befs_anneさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。