2021-10-01ãã1ã¶æéã®è¨äºä¸è¦§
Goè¨èªã§ã¹ã©ã¤ã¹ãæååããã使ãããã³ã¼ãä¸ã§ã¯ã¢ãã¬ã¹ãå·§ã¿ã«é è½ããã¦ãå®å ¨ãªããã°ã©ãã³ã°ãã§ããããã«ãªã£ã¦ããããããããã¾ã«ãã¢ãã¬ã¹ã使ã£ã¦ã¦ãã¼ã¯æ§ã調ã¹ããã¨ããããããã®æ¹æ³ã«ã¤ãã¦ã¡ã¢ããã
gRPCã®éä¿¡ããSSL/TLSã®æå·åã§ä¿è·ããã¨ã¨ãã«ãã¯ã©ã¤ã¢ã³ãèªè¨¼ãX.509証ææ¸ã§è¡ããããã«ãTkrzw-RPCã®ãµã¼ãã¨ã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªãæ¹è¯ãããgRPCã§ã¯SSL/TLSã ãã§ãªããALTSãToken-basedèªè¨¼ã使ããã®ã ããã¾ãã¯æ軽ãã¤æ´å²ã®ãããªSSâ¦
ãã¼ã¿ãã¼ã¹ã©ã¤ãã©ãªTkrzwã®gRPCãµã¼ãã¹ã«Javaã§æ¥ç¶ãã¦æä½ããããã®ã©ã¤ãã©ãªãå®è£ ãããããã«ã¦ãå½åäºå®ãã¦ããC++ãJavaãPythonãRubyãGoã®å ¨ã¦ãç¶²ç¾ ããã®ã§ãgRPCã®ã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªãæ¸ãã¾ããæ ã¯çµäºã ããã®è¨äºã§ã¯ãç°¡åâ¦
gRPCã®Javaçã®ãã¥ã¼ããªã¢ã«ã«ã¯ãGradleã使ã£ããã«ãæ¹æ³ã ãã説æããã¦ãããJavaçéã§ã¯MavenãGradleããã«ããã¼ã«ã¨ãã¦ãã使ããã¦ããã®ã¯ç¥ã£ã¦ããããç§ã¯makeã使ãããããã£ã¦ãã¾ãã¯ãã«ããã¼ã«ã使ããã«åã ã®æé ãé²ããæ¹æ³ãâ¦
ååã®è¨äºã§ãã¡ãã»ã¼ã¸ãã¥ã¼ãå®ç¾ããããã®è¦ç´ æè¡ã«ã¤ãã¦è«ãããä»åã¯ããããå®éã«Tkrzw-RPCã®ãµã¼ãã«çµã¿è¾¼ãã§ãåæ£å¦çãè¡ããã¢ãç´¹ä»ãããGoãPythonãRubyãä¸æ°ã«åºã¦ãããå¾ãªè¨äºã ã
åç´ãªkey-valueã¹ãã¬ã¼ã¸ã§ããDBMã使ã£ã¦ã¡ãã»ã¼ã¸ãã¥ã¼ãå®ç¾ããã«ã¯ã©ãããã°ãããã¨ããæèå®é¨ãããä¸ã§ãå®è£ ããã¦ãã¾ããã¨ããä¼ç»ãååã¯ãæ©è½è¦ä»¶ã¨è¦ç´ æè¡ãæ¤è¨ããã
Tkrzw-RPCã®ã¯ã©ã¤ã¢ã³ããC++ãPythonãRubyãGoã§åºæã£ãã®ã§ãç°¡åãªæ§è½ãã¹ãããã¦ã¿ãã以ä¸ã¯1ã¹ã¬ããã®ã¹ã«ã¼ããããã°ã©ãã«ãããã®ã ãåä½ã¯QPSã
Pythonã¨Rubyã®ã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªãæ¸ããã®ã§ã次ã¯Goã ãgRPCçéã§ã¯Goããã使ããããããªã®ã§ãåªå 度é«ãã§çæããã詳ãããã¨ã¯APIææ¸ãã覧ããã ãããããç°¡åãªä½¿ãæ¹ãããã§ãç´¹ä»ããã
Tkrzwã®Fedoraç¨ã®ããã±ã¼ã¸ãä½ã£ã¦ããã¦ãã人ããä¸å ·åå ±åãè²°ã£ã¦ããããã®ä¸å ·åã¯PowerPC 64ãããã®ç¹å®ã®ç°å¢ã§ããèµ·ãããªããããããã®ä¸å ·åãæå ã§åç¾ã§ããªãã®ã§ãä½ãåé¡ãªã®ããããããããã°ããç´ããªãã§ããããã®åå ããã£â¦
ååã®è¨äºã§Pythonã®ã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªãç´¹ä»ããããRubyã®ã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªãå®è£ ã§ããã®ã§ãä»åã¯ãããç´¹ä»ããã詳ãããã¨ã¯APIææ¸ãã覧ããã ãããã
DBãµã¼ãã¹ãä½ããã®ä¸é£ã®é£è¼ãçµäºããç¡äºDBãµã¼ãã¹ãå®æããã®ã§ãã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªãä½ãæ ã«åºã¦ãããã¨ããããPythonçãã§ããã®ã§ã使ãåæãªã©ã説æããããTkrzw-RPCæ¬ä½ã«ã¤ãã¦ã¯ãã¹ã©ã¤ãã®æ¹ãã覧é ãããã