Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ProtocolBuffers調べてみた
Search
yoshihiro.ri
November 28, 2024
0
6
ProtocolBuffers調べてみた
勉強会で発表する時に使ったスライドです
※正確な情報をお求めの方は公式ドキュメントを参照ください
yoshihiro.ri
November 28, 2024
Tweet
Share
More Decks by yoshihiro.ri
See All by yoshihiro.ri
LINEで朝活!技術トレンドを1日1分でキャッチする『Daily Tech Digest』を作ってみた
yoshihiro999
0
390
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Embracing the Ebb and Flow
colly
86
4.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Designing for humans not robots
tammielis
253
25k
Raft: Consensus for Rubyists
vanstee
140
7k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
810
Practical Orchestrator
shlominoach
188
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Transcript
ProtocolBuffers 調べてみた
Protocol Buffersとは? スキーマ言語 データのバイナリ変換に使えるフォーマット 異なる言語同士の通信に役立つ Google が開発 gRPCに使われている
Protocol Buffersとは? Userデータ ① ②
Protocol Buffersとは? Userデータ ① ② uint32と思っていたのでエラーが起きました
Protocol Buffersとは? protoファイル
Protocol Buffersとは? バイナリデータ 1.クラス生成 2.データをシリアライズ protoファイル ① ②
Protocol Buffersとは? protoc user.proto --python_out Pythonのクラス定義が自動生成 1.クラス生成
data: b'\n\x05Alice\x10\x19\x1a\
[email protected]
' 2.データをシリアライズ
Protocol Buffersとは? ① ② uint64ね、はいはい 1.クラス生成 2.データをデシリアライズ バイナリデータ protoファイル
本文を追加 javascriptはint64を正確に扱えない 1234567890123457000に丸めてしまう 1.言語非依存
言語非依存 どの言語でもprotoファイルからコード生成できる シリアライズで言語特有の値の受け渡し精度を改善
前方・後方互換性
前方・後方互換性 異なるprotoファイルのバージョンの共存ができる ver. 1.0 ver. 1.1
前方・後方互換性 バイナリデータ 1.0 protoファイル ① ② ver. 1.0 ver. 1.1
desert,foodには デフォルト値が入る
前方・後方互換性 バイナリデータ 1.1 protoファイル ① ② ver. 1.0 ver. 1.1
desert,foodは 無視します
ver. 1.0 ver. 1.1 ver. 1.2 ver. 1.4 異なる言語、異なるproto間の やり取りが可能!!!
ver. 1.1
デメリット 可読性が低い 1. スキーマ依存 2. デバッグしづらい 3. RESTful APIとの相性が悪い 4.
メッセージサイズが小さいとメリットが薄い 5.
概要: Googleが開発したバイナリデータシリアライズフォーマット メリット: 高速、非言語依存、後方・前方互換性あり デメリット: 可読性低い、スキーマ依存、RESTful APIあまり向いてない Protocol Buffers(Protobuf)まとめ
質問タイム
ありがとうございました!