Protocol BuffersïŒãããã³ã«ãããã¡ïŒ ãšã¯ïŒ
- .protoãã¡ã€ã«ã§ããŒã¿ã®åãšæ§é ãå®çŸ©ããåèšèªã®ã³ãŒããèªåçæã§ãã
- ãã€ããªåœ¢åŒã®ããJSONãšæ¯ã¹ãŠããŒã¿ãµã€ãºãå°ãããããŒã¹éåºŠãæ°åãæ°ååé«é
- gRPCã®æšæºããŒã¿åœ¢åŒãšããŠæ¡çšãããŠããããã€ã¯ããµãŒãã¹ééä¿¡ã§åºãå©çšããã
- ã¹ããŒãã®åŸæ¹äºææ§ãä¿ã¡ãããèšèšã§ããã£ãŒã«ãã®è¿œå ã»åé€ãå®å šã«è¡ãã
Protocol Buffersã£ãŠäœãªã®ïŒJSONãšã¯éãã®ïŒ
JSONã人éã«ãèªããããã¹ã圢åŒãªã®ã«å¯ŸããŠãProtocol Buffersã¯ã³ã³ãã¥ãŒã¿ãå¹çããåŠçã§ãããã€ããªåœ¢åŒãªãã ã人éãçŽæ¥èªãã®ã¯é£ãããã©ããã®ã¶ãããŒã¿ãµã€ãºãå°ãããŠåŠçé床ããããéããã ã
ã©ã®ãããéããªãã®ïŒ
ã±ãŒã¹ã«ãããã©ãããŒã¿ãµã€ãºã¯JSONã®3åã®1ã10åã®1ãããŒã¹éåºŠã¯æ°åãæ°ååéããªãããšãããããç¹ã«ãã€ã¯ããµãŒãã¹éã§å€§éã®ããŒã¿ããããšãããå Žåã¯ããã®å·®ãããªãå¹ããŠãããã
.protoãã¡ã€ã«ã£ãŠããã®ã¯äœãªã®ïŒ
ããŒã¿ã®èšèšå³ã¿ãããªãã®ã ããããã®ããŒã¿ã«ã¯ååïŒæååïŒãšå¹Žéœ¢ïŒæ°å€ïŒããããã¿ãããªæ§é ãå®çŸ©ãããã¡ã€ã«ã ãããã®èšèšå³ããPythonãGoãJavaãªã©åèšèªã®ã³ãŒããèªåçæããããããèšèªãéã£ãŠãããŒã¿ã®åãæž¡ãã確å®ã«ã§ãããã
gRPCãšã»ããã§ããèããã©ãã©ãããé¢ä¿ãªã®ïŒ
gRPCã¯Googleãäœã£ãRPCãã¬ãŒã ã¯ãŒã¯ã§ããµãŒãã¹éã®éä¿¡ã®ä»çµã¿ã ãããã®gRPCããéãããŒã¿ã®åœ¢åŒããšããŠæšæºã§äœ¿ã£ãŠããã®ãProtocol Buffersãªãã ãgRPCãé éãã©ãã¯ã ãšãããšãProtocol Buffersã¯è·ç©ã®æ¢±å æ¹æ³ã¿ãããªã€ã¡ãŒãžã ã
ãã€ããªã ãšäººéãèªããªãã®ã¯ãããã°ã§å°ããªãã®ïŒ
ãã質åã ãã確ãã«curlã§ãµã¯ããšç¢ºèªãã¿ãããªããšã¯ãã«ãããã§ãgrpcurlãBloomRPCã¿ãããªããŒã«ã䜿ãã°ãã³ãŒãããŠèªãã圢ã§è¡šç€ºã§ããããããšéçºäžã¯JSONã§ãæ¬çªã§ã¯Protocol Buffersãšãã䜿ãåããããããŒã ãããã
ãã£ãŒã«ãã远å ããŠã倧äžå€«ã£ãŠèãããã©ãæ¬åœãªã®ïŒ
æ¬åœã ããProtocol Buffersã§ã¯åãã£ãŒã«ãã«çªå·ãæ¯ããã ãã©ãå€ãã³ãŒãã¯ç¥ããªãçªå·ã®ãã£ãŒã«ããç¡èŠããããæ°ããã³ãŒãã¯å€ãããŒã¿ã«è¶³ããªããã£ãŒã«ããããã©ã«ãå€ã§åãããã ãããµãŒãã¹ãäžæã«ããŒãžã§ã³ã¢ããããªããŠãäºææ§ãä¿ãŠããã
ãããïŒãããå šéšProtocol Buffersã«ããã°ããããããªãã®ïŒ
ãããšãéããªããããã©ãŠã¶ã®JavaScriptãšãããšãããWebAPIãªãJSONã®ã»ããæ±ããããããèšå®ãã¡ã€ã«ã¿ããã«äººéãç·šéãããã®ã«ã¯YAMLãJSONãåããŠãããProtocol Buffersãç䟡ãçºæ®ããã®ã¯ããµãŒããŒéã®å€§ééä¿¡ããã¢ãã€ã«ã¢ããªã®ããã«åž¯åãç¯çŽãããå Žé¢ã ã