ãããã¯ã30幎ã«ããããœãããŠã§ã¢éçºçµéšã®æ¬è³ªã§ããã
ZeroMQããã»ã¹ïŒC4
ZeroMQã«ã€ããŠè©±ããšããã¡ã€ã³ã©ã€ãã©ãªã§ãã
libzmq
ãæå³ããå ŽåããããŸãã 2012幎ã®åãã«ã
libzmq
ããã»ã¹ãæ£åŒã§åå©çšå¯èœãªã³ã©ãã¬ãŒã·ã§ã³ãããã³ã«ã«åæããŸãããããããCollective Code Development ContractããŸãã¯C4ãšåŒã³ãŸãã ããã¯ãã©ã€ã»ã³ã¹ïŒMPLv2ãªã©ïŒããäžã®ã¬ã€ã€ãŒãšèŠãªãããšãã§ããŸãã ãããã¯ç§ãã¡ã®ã«ãŒã«ã§ãããããããã®åå ã説æããŸãã
C4ã¯GitHub Fork + Pullã¢ãã«ã®é²åçã§ãã ããªãã¯ç§ãgitãšGitHubã®ãã¡ã³ã ãšæããããããŸããã ããã¯ç¢ºãã§ãããããã®2ã€ã®ããŒã«ã¯ãè¿å¹Žã®äœæ¥ãç¹ã«ã³ãã¥ããã£ã®æ§ç¯ã«é¢ããŠãç§ãã¡ã®ä»äºã«ãã©ã¹ã®åœ±é¿ãäžããŠããŸãã
èšèª
ãå¿ é ãããå¿ é ãããå¿ é ãããå¿ é ãããå¿ é ããããã¹ãã§ã¯ãªããããæšå¥šãããæšå¥šããããªãã·ã§ã³ããšããèšèã¯ããã®ããã¥ã¡ã³ãã§æ¬¡ã®ããã«è§£éããå¿ èŠããããŸãã RFC 2119ã«èšèŒãããŠããŸãã
RFC 2119以éãC4ããã¹ãã¯ãã©ã³ãã ã«æžãããäžé£ã®æšå¥šäºé ã§ã¯ãªãããããã³ã«ãšããŠæ©èœããããšãæå³ããŠããããšãæ確ã«ç€ºããŠããŸãã ãããã³ã«ã¯ãååœäºè ã®æš©å©ãšçŸ©åãå®çŸ©ããåœäºè éã®å¥çŽã§ãã 圌ãã¯ãããäžã§éŠŽæã¿ããããããããŸããããåããããžã§ã¯ãã«åãçµãã§ããèŠç¥ãã¬äººãããããŸããã
C4ã¯ãã³ãã¥ããã£ã¬ã€ãã©ã€ã³ãæ£åŒã§åå©çšå¯èœãªãããã³ã«ä»æ§ãšããŠäœç³»åããããšããŠãã人ã®æåã®äŸã ãšæããŸãã 以åãç§ãã¡ã®ã«ãŒã«ã¯ããã€ãã®wikiããŒãžã«åºãããäž»ã«
libzmq
ã«åºæ
libzmq
ã ããããçµéšãããã«ãŒã«ãããæ£åŒã§ãæ£ç¢ºã§ãåå©çšå¯èœã§ããã»ã©ã人ã ããäºãã«äžæ £ãã«ãªãããšã容æã«ãªãããšãããããŸãã ãããŠãæèŠã®äžäžèŽãå°ãªããšããããšã¯ãããã¹ã±ãŒã©ãã«ãªã³ãã¥ããã£ãæå³ããŸãã C4ã®æéäžã
libzmq
ãããžã§ã¯ãã§äœ¿çšããããã»ã¹ã«é¢ããŠæèŠã®çžéããããŸããã 誰ããåãã«ãŒã«ã«çžãããŠãããšã¯æããŠããŸããã äžéšã®äººã ã¯èªåãç¹å¥ãªå°äœã«ãããšèãããããã³ãã¥ããã£ã®ä»ã®éšåãšã®å¯Ÿç«ãçã¿åºãããšèšã£ãŠã¿ãŸãããã ãããã£ãŠãä»æ§ã¯äºæ ãæ確ã«ããŸããã
C4ã®äœ¿çšã¯ç°¡åã§ãããããžã§ã¯ããGitHubã«æçš¿ããå¥ã®äººãåå ãããŠããã«ãªã¯ãšã¹ãæ©èœãéãã ãã§ãã READMEã«ãC4ãžã®ãªã³ã¯ãå ¥åããŸããããã§å®äºã§ãã å€ãã®ãããžã§ã¯ãã§ãããè¡ã£ãŠãããããŸãããããã§ãã CZMQãããžã§ã¯ããªã©ã§èªåã®äœåã«ãããã®ã«ãŒã«ãé©çšãããšããç§ã¯ãã°ãã°å¬ããé©ããçµéšããŸããã ç§ãã¡ã®èª°ããä»ã®äººãªãã§ä»äºãããããšãã§ããã»ã©æ¯é¡ã®ãªã人ã¯ããŸããã
ç®æš
C4ä»æ§ã¯ããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«æé©ãªè€æ°ã®ã³ã©ãã¬ãŒã·ã§ã³ã¢ãã«ãæäŸããããã«èšèšãããŠããŸãã
èŠããã«ãC4ãäœæããçç±ã¯ã
libzmq
ã³ã©ãã¬ãŒã·ã§ã³ããã»ã¹ã®äžäžèŽãçµããããããã§ãã å察è ã¯ä»ã®å Žæã«æ®ã£ãã ç§ãäºæž¬ããããã«ãZeroMQã³ãã¥ããã£ã¯ã¹ã ãŒãºãã€ç°¡åã«ç¹æ ããŸããã ã»ãšãã©ã®äººã¯ããã«é©ããããæºè¶³ããã C4ã«ã€ããŠã¯ãåå²ããªã·ãŒä»¥å€ã«å®éã®æ¹å€ã¯ãããŸããã§ãããããã«ã€ããŠã¯ãå¥ã®è°è«ã«å€ãããããåŸã§èª¬æããŸãã
ããã§ç§ãåµé ã®æŽå²ãèŠãŠããçç±ããããŸããã³ãã¥ããã£ã®åµèšè ãšããŠãããªãã¯äººã ã«ããªãã®è²¡ç£ãåæšããã©ã³ãã«æè³ããããã«é Œã¿ãŸãã 次ã«ãZeroMQã®å Žåãšåæ§ã«ããã®ãã©ã³ãã£ã³ã°ã䜿çšããŠå質ã®åºæºãèšå®ã§ããŸãã ãZeroMQããšããã©ãã«ã®ä»ãã補åãããŠã³ããŒããããšãç¹å®ã®æšæºã«ãªãªãŒã¹ãããŠããããšãããããŸãã ãããå質ã®åºæ¬ã«ãŒã«ã§ããããã»ã¹ãæžãçããŠãã ããã ããããªããšãæ¹åã§ããŸããã ç§ãã¡ã®ããã»ã¹ã¯å®ç§ã§ã¯ãªãã決ããŠãã®ããã«ãªãããšã¯ãããŸããã ãã ãããããã®æ¬ é¥ã¯ä¿®æ£ããã³ãã¹ãã§ããŸãã
ãããã£ãŠãC4ãåå©çšå¯èœã«ããããšãéåžžã«éèŠã§ãã æè¯ã®ããã»ã¹ã«ã€ããŠããã«åŠã¶ã«ã¯ãå¯èœãªéãå¹ åºããããžã§ã¯ãã®çµæãåéããå¿ èŠããããŸãã
ãã®ãã¹ãŠã«ã¯ããããžã§ã¯ãã®åšãã«åœ¢æãããã³ãã¥ããã£ã®æ¡å€§ãæ°èŠã¡ã³ããŒã®å ¥å ŽéŸå€ã®åæžãããã³è¯å®çãªãã£ãŒãããã¯ã䌎ãã¹ã±ãŒã©ãã«ãªããŒãããŒã·ããã¢ãã«ã®äœæãšããç¹å®ã®ç®æšããããŸãã
第äžã®ç®æšã¯ãã³ãã¥ããã£ã®èŠæš¡ãšæŽ»åã§ããæè¡çå質ã§ã¯ãªããå©çã§ããçç£æ§ã§ããåžå Žã·ã§ã¢ã§ããããŸããã ç®æšã¯ãåã«ãããžã§ã¯ãã«è²¢ç®ãã人ã®æ°ã§ãã ããã§ã®ç§åŠã¯åçŽã§ããã³ãã¥ããã£ã倧ãããªãã°ãªãã»ã©ãçµæã¯ããæ£ç¢ºã«ãªããŸãã
å¿ èŠãªã¹ãã«ã»ãããããŸããŸãªå°é家ã«åæ£ãããããšã«ãããäž»èŠãªå人ãžã®äŸåãæžãããã©ã®åéã§ãé«ãã¬ãã«ã®èœåãçºæ®ã§ããããã«ããŸãã
ããããã
libzmq
ã§ééããææªã®åé¡ã¯ãã³ãŒããç解ããGitHubãã©ã³ãã管çããã¯ãªãŒã³ãªãªãŒã¹ãåæã«äœæã§ãã人ã ã«äŸåããããšã§ããã ããã¯ããã©ãœã³ãã¹ããªã³ããå®è¡ããããæ³³ãã ãããŠã§ã€ããæã¡äžãããã§ããã¢ã¹ãªãŒããèŠã€ããããšã«äŒŒãŠããŸãã ç§ãã¡äººéã¯å°éåãéåžžã«åŸæã§ãã 察ç«ãã2ã€ã®ç¹ã§æ¬åœã«è¯ãããšãèŠæ±ããã®ã¯è¯ãèãã§ã¯ãããŸãããåè£è ã®æ°ãå€§å¹ ã«æžãããã§ããããã¯ã©ã®ãããžã§ã¯ãã«ãšã£ãŠãæªãããšã§ãã ãã®åé¡ã¯2009
libzmq
ã§çºçãã
libzmq
圹å²ã2人ã«åå²ããããšã§è§£æ±ºããŸããã1人ãããããäœæãããã1人ããªãªãŒã¹ããŸãã
ææ決å®ããã»ã¹ãéçºããããšã«ãããããè¿ éã§æ£ç¢ºãªãããžã§ã¯ãéçºãæäŸããŸãã
ãã®çè«ã¯å®å šã«ã¯èšŒæãããŠããŸããããåœé ãããŠããŸããã ã³ãã¥ããã£ã倧ãããªããæ¹å€ã解éãæããããšãªãè°è«ã«åå ã§ãã人ãå€ããªãã°ãªãã»ã©ããœãããŠã§ã¢ã¯ããéããããæ£ç¢ºã«éçºãããŸãã ããã§ã®é床ã¯éåžžã«äž»èŠ³çã§ãã ééã£ãæ¹åãžã®ç§»åã¯åœ¹ã«ç«ããªãã ãã§ãªãããããžã§ã¯ãã«ãšã£ãŠéåžžã«æ害ã§ãïŒC4ã«åãæ¿ããåã«
libzmq
å€ãã®ããšããã¹ãããŸããïŒã
å®å šãªå®éšãå®æœããåé¡ã«è¿ éã«å¯Ÿå¿ããå®å®ããã³ãŒããåé¢ããããšã«ãããå®éšããŒãžã§ã³ããå®å®ããŒãžã§ã³ãŸã§ã®ãããžã§ã¯ãããŒãžã§ã³ã®ã©ã€ããµã€ã¯ã«ãç¶æããŸãã
ããã¯ãããã»ã¹ã«å¯Ÿããé¢çœã圱é¿ã§ããéåžžãgit masterãã©ã³ãã¯åžžã«å®å šã«å®å®ããŠããŸãã ããã¯ãå€æŽã®ãµã€ãºãšåŸ æ©æéã«ãããã®ã§ãã 誰ããã³ãŒããæžããŠããä»ã®èª°ãããããå®å šã«äœ¿çšãããŸã§ã®æéã ããã«ãããããããéåžžãèšèšãã¬ãŒãã³ã°ã®éåžžã®ããã»ã¹ã¯ããããžã§ã¯ããå®å®ããŠæºãåããŸã§ç¹°ãè¿ãããŸãã
ãªããžããªã®å éšã®è€éãã軜æžããŸããããã«ãããè²¢ç®è ãåå ãããããªãããšã©ãŒãæžå°ããŸãã
奜å¥å¿ã®åŒ·ã芳å¯ïŒå°é£ãªç¶æ³ã§æåãã人ã¯ãæ··ä¹±ã®åºŠåããé«ããããšèããŸãã ãããã³ãã©å¹æã§ãïŒã°ãŒã°ã«itïŒã Gitã¯ãã©ã³ãã軜éåããéåžžã«äžè¬çãªã·ã³ãããŒã ãæ®ããŸããïŒãgitãã©ã³ãã¯ãäžéãã£ãã·ã¥ã®ãªãç Žããå±¥æŽãæã€5次å ã®ã¬ããã³ç©ºéã«ãããªãããšãç解ããã°ãgitã¯åçŽã§ããã éçºè ã¯ãããŒã«ã®ããã§ãã«ã«ãªã£ãŠã¯ãããŸããã ã¬ããžããªæ§é ã«å·»ã蟌ãŸããgitãã©ã³ãã«ã€ããŠäžè¬ã«åãå ¥ããããŠããç¥æµãåãå ¥ããªããããŸãã«ãå€ãã®é«çŽéçºè ãèŠãŠããŸããã 芪æãªãèªè ã®çãããããã«gitãã©ã³ãã«å¯ŸåŠããäºå®ã§ãã
ãããžã§ã¯ãã®å ±åæææš©ã®ã¹ããŒã¿ã¹ã確ä¿ããŸããããã«ãããåå è ã®ééçåæ©ãé«ãŸããæµå¯Ÿçãªçµç¹ããã®ççšã®ãªã¹ã¯ã軜æžãããŸãã
æçµçã«ãç§ãã¡ã¯ççµæžçãªçãç©ã§ããããç§ãã¡ã¯ãããææããç§ãã¡ã®ä»äºã¯ç§ãã¡ã«å¯ŸããŠæ±ºããŠäœ¿çšã§ããªãããšããæèŠããZeroMQãªã©ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«äººã ãæè³ããããããŸãã ãããŠããã¯åãªãææ ã§ã¯ãªããçŸå®ã§ãªããã°ãªããŸããã éåçãªããããã£ãäœæããã«ã¯å€ãã®åŽé¢ããããŸããC4ãå®è¡ãããšãã«ããããã1ã€ãã€èŠãŠãããŸãã
ããŒãã€ã³ã
ãããžã§ã¯ãã¯ãåæ£gitããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿çšããå¿ èŠããããŸãã
Gitã«ã¯æ¬ ç¹ããããŸãã 圌ã®ã³ãã³ãã©ã€ã³APIã¯ã²ã©ãäžè²«æ§ããªããäœããã®çç±ã§åœŒãããªãã®é¡ãçªãè€éã§ä¹±éãªå éšã¢ãã«ãæã£ãŠããŸãã ãããããŠãŒã¶ãŒããã«ã«ããããã«ã§ããéãã®ããšãããŠããã«ãããããããgitã¯æ¬åœã«ããŸããã£ãŠããŸãã ããå®çšçã«ã¯ãç¹å®ã®é åïŒåå²ïŒïŒããé¢ãããšã人ã ã¯gitããã°ããç¿åŸããå€ãã®ééããããªãããšãããããŸããã ããã¯ç§ã«é©ããŠããŸãã
ãã®ãããžã§ã¯ãã¯ãgithub.comãŸãã¯åçã®ãã®ïŒããã§ã¯ããã©ãããã©ãŒã ããšåŒã³ãŸãïŒã§ãã¹ãããå¿ èŠããããŸãã
ãã€ã倧äŒæ¥ãGitHubãè³Œå ¥ããŠç Žå£ããå¥ã®ãã©ãããã©ãŒã ãGitHubã眮ãæãããšç¢ºä¿¡ããŠããŸãã ãããŸã§ãGithubã¯æå°éãé«éãã·ã³ãã«ãªããŒã«ã®ã»ãŒå®ç§ãªã»ãããç¶æããŠããŸãã ç§ã¯ããã«äœçŸäººãã®äººãéããŸãããã圌ãã¯çããŸã ãããšåãç¿ã«åºãã£ãããšã®ããã«ããã«ããŸãã
ãããžã§ã¯ãã¯ãããžã§ã¯ã管çã·ã¹ãã ã䜿çšããå¿ èŠããããŸãã
GitHubãã©ãã«ãŒãæ£ãã䜿çšããæ¹æ³ããŸã åŠç¿ããŠããªãããã
libzmq
ã«åãæ¿ããŠ
libzmq
ãã¹ãç¯ããŸããã ããžãã¹ã¯ããå€ãã®ãæ©èœãã®è²©å£²ã«äŸåããŠãããããJiraã¯æçšãªãã®ããã€ããæ··ä¹±ã«å€ããæ¹æ³ã®åªããäŸã§ãã ããããJiraãæ¹å€ããããšãªããã¿ã¹ã¯ãã©ãã«ãŒãåããã©ãããã©ãŒã ã«ä¿æããããšã¯ã1ã€ã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã§åŠã¶å¿ èŠãå°ãªããªãã1ã€ã®ãã°ã€ã³ã§å°ãªããªãããããžã§ã¯ããšãããéã®ã¹ã ãŒãºãªçµ±åã衚瀺ãããããšãæå³ããŸãã
ãããžã§ã¯ãã¯ãã³ãŒãã¹ã¿ã€ã«ã®ã¬ã€ãã©ã€ã³ãæ確ã«ææžåããå¿ èŠããããŸãã
ããã¯ãããã³ã«ãã©ã°ã€ã³ã§ããã³ãŒãã¹ã¿ã€ã«ã«ãŒã«ãããã«æ¿å ¥ããŸãã 䜿çšããã³ãŒãã®ã¹ã¿ã€ã«ãææžåããªãå ŽåãåèŠãé€ããŠãããããæåŠããçç±ã¯ãããŸããã
ã³ã³ããªãã¥ãŒã¿ãŒãšã¯ãæ確ã«å®çŸ©ãããåé¡ã解決ããäžé£ã®ã³ãããã§ããããããæäŸããã人ã§ãã ãã¡ã³ããã³ã¹æ åœè ããšã¯ããããžã§ã¯ãå ã®ããããçµåãã人ã§ãã ã¡ã³ãããŒã¯éçºè ã§ã¯ãããŸããã 圌ãã®ä»äºã¯éçºããã»ã¹ã«åŸãããšã§ãã
次ã«ãããŒãã£ãŒã®å®çŸ©ãšããŸããªäººã ãžã®æ害ãªæ§é äŸåããç§ãã¡ãæã£ã圹å²ã®åé¢ã«é²ã¿ãŸãã ããã¯
libzmq
ã§ããŸãæ©èœããŸãããããªããèŠãããã«ãããã¯æ®ãã®ããã»ã¹ã«äŸåããŸãã C4ã¯èªå·±çµç¹åãããããŒãã«ã¯ãã¹ã§ã¯ãããŸããããã¹ãŠããã©ãã©ã«ãªããªãããã«ãããã»ã¹å šäœïŒãŸãã¯éåžžã«é¡äŒŒãããã®ïŒãå¿ èŠã§ãã
ã¡ã³ããŒã¯ãã¡ã³ãããŒã§ããªãéãããªããžããªã«ã³ãããããããšã¯ã§ããŸããã ã¡ã³ãããŒã¯ãªããžããªã«ã³ãããã§ããªããã°ãªããŸããã
ç§ãã¡ãé¿ãããã£ãã®ã¯ã人ã ãèªåã®å€æŽãçŽæ¥masterãã©ã³ãã«ããã·ã¥ããããšã§ããã ããã¯ãæŽå²çã«
libzmq
ã®åé¡ã®æ倧ã®åå ã§ãããå®å®ãããŸã§ã«æ°ãæãŸãã¯æ°å¹Žããã倧éã®çã³ãŒãã æçµçã«ãããŠã³ããŒããªã¯ãšã¹ãã䜿çšããŠãPyZMQãªã©ã®ä»ã®ZeroMQãããžã§ã¯ãã远跡ããŸããã ããã«é²ãã§ããã¹ãŠã®å€æŽãåããã¹ã«åŸãå¿ èŠãããããšã瀺ããŸããã ãç¹å¥ãªäººãã®äŸå€ã¯ãããŸããã
誰ãããåºå¥ãå·®å¥ããªãã«ããã®å¥çŽã®æ¡ä»¶ã«åŸã£ãŠã¡ã³ããŒã«ãªãæ©äŒã«å¯Ÿããå¹³çãªæš©å©ãæããªããã°ãªããŸããã
ãããçŽæ¥ææãã¹ãã§ããã 以åã¯ã
libzmq
ãµããŒã¿ãŒã¯ãããã奜ãã§ã¯ãªãã£ããšããçç±ã ãã§ããããæåŠããŠããŸããã ã©ã€ãã©ãªã®äœæè ã«ãšã£ãŠããã¯çã«ããªã£ãŠããããã«æãããããããŸãã
libzmq
ïŒ
libzmq
1人ã«ãã£ãŠæžããã
libzmq
ãŸãããïŒãã§ããã ãå€ãã®äººã ã«å±ããäœåãäœæãããšããç®æšãæãåºããŠã¿ãŸãããã ãããªãã®ããããæ°ã«å ¥ããªãã®ã§æåŠããŸãããšèšãããšã¯ããç§ã¯ãããææããŠãããšäž»åŒµããç§ã¯ããªããããåªããŠãããšæãããããªããä¿¡çšããŠããªãããšèšãããšãšåãã§ãã ãããã¯ãå ±åæè³å®¶ã«ãªãããšãèããŠãã人ã«ãšã£ãŠã¯æ害ãªã¡ãã»ãŒãžã§ãã
åã ã®çµéšãšéåç¥èœãšã®éã®ãã®éäºã¯ãä»ã®åéã§ãå±éãããŠãããšæããŸãã 圌女ã¯ãŠã£ãããã£ã¢ãäœæããŸããããå°ã°ã«ãŒãã®å°é家ãã§ããããšããã¹ãŠè¶ ããŠãã10幎ãçµéããåŸãåŒãç¶ãäœæããŠããŸãã ç§ã«ãšã£ãŠãããã¯ãŠã£ãããã£ã¢ã®èšäºãšåãããã«ãæãæ£ç¢ºãªç¥èãåŸã ã«åæããŠãœãããŠã§ã¢ãäœæããæ¹æ³ã§ãã
ã©ã€ã»ã³ã¹ãšè²¡ç£
ãããžã§ã¯ãã¯ãMPLv2ãšåãã©ã€ã»ã³ã¹ããŸãã¯GPLv3ãªãã·ã§ã³ïŒGPLãLGPLãAGPLïŒã䜿çšããå¿ èŠããããŸãã
å®å šãªãªããã¯ã¹å¯èœæ§ïŒãããªã¢ã«ãç¹°ãè¿ã䜿çšããå¯èœæ§ïŒãããè¯ãã¹ã±ãŒã«ãäœæããæ¹æ³ãããã³MPLv2ãŸãã¯GPLãšãã®ããªã¢ã³ãããªããã¯ã¹å¯èœãªãœãããŠã§ã¢ã®æé©ãªå¥çŽã§ããããã«èŠããçç±ã«ã€ããŠã¯æ¢ã«èª¬æããŸããã åžå Žã§ã³ãŒãããã³ãããããšãç®çãšãã倧äŒæ¥ã®å ŽåãC4ã¯å¿ èŠãããŸããããã³ãã¥ããã£ã¯æ°ã«ããŸããã
ãããžã§ã¯ãã®ãœãŒã¹ã³ãŒãïŒãããããïŒãžã®ãã¹ãŠã®è²¢ç®ã¯ããããžã§ã¯ããšåãã©ã€ã»ã³ã¹ã䜿çšããå¿ èŠããããŸãã
ããã«ããããããã®éçºã«åå ããããã®ç¹å®ã®ã©ã€ã»ã³ã¹ãŸãã¯å¥çŽãäžèŠã«ãªããŸãã MPLv2ãŸãã¯GPLã³ãŒãããã©ãŒã¯ããå€æããããŒãžã§ã³ãGitHubã§å ¬éããŸããããããœãŒã¹ã³ãŒãã®ä¿®æ£ãšããŠéä¿¡ã§ããŸãã BSDã¯ãããèš±å¯ããŠããŸããã BSDã³ãŒããå«ãäœåã«ã¯ãã©ã€ã»ã³ã¹ã®ãªãå°æã³ãŒããå«ãŸããŠããå¯èœæ§ããããããã³ãŒããããçŽãã«ã¯ããã®ã³ãŒãã®äœæè ã®èš±å¯ãå¿ èŠã§ãã
ãã¹ãŠã®ãããã¯äœæè ã®ãã®ã§ãã èäœæš©ã®è²æž¡ããã»ã¹ã¯ååšããŠã¯ãªããŸããã
ããã§ãZeroMQãžã®è²¢ç®ã«äººã ãèªä¿¡ãæã£ãŠããäž»ãªçç±ã«è³ããŸããèäœæš©ãè³Œå ¥ããŠZeroMQã®ã¯ããŒãºããœãŒã¹ã®ã©ã€ãã«ãäœãããšã¯è«ççã«äžå¯èœã§ãã iMatixããããè¡ãããšãã§ããŸããã ãããŠãããããéã人ãå€ããªãã°ãªãã»ã©ãé£ãããªããŸãã ZeroMQã¯ä»æ¥ç¡æã§éãããŠããã ãã§ã¯ãããŸããããã®æ©èœã«ãããZeroMQã¯æ°žä¹ ã«åç¶ã§ããŸãã ããã¯ãã¹ãŠã®MPLv2 / GPLãããžã§ã¯ãã«åœãŠã¯ãŸãããã§ã¯ãªãããšã«æ³šæããŠãã ãããå€ãã®ãããžã§ã¯ãã§ã¯äŸç¶ãšããŠãã¡ã³ãããŒãžã®èäœæš©ã®è¿åŽãå¿ èŠã§ãã
ååå è ã¯ããããžã§ã¯ãåå è ã®ãªã¹ãã§èªåèªèº«ãç¹å®ããå¿ èŠããããŸãã
èšãæããã°ãã¡ã³ãããŒã¯ã«ã«ãäŒèšå£«ã§ã¯ãããŸããã æ¿èªãåŸãã人ã¯èª°ã§ãèªåã§å®£èšããªããã°ãªããŸããã
ãããèŠä»¶
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãåå è ã®çŸ©åãç¹ã«ãé©åãªãããããæ§æãããã®ãå®çŸ©ããŸããããã«ãããã¡ã³ãããŒã¯ãããããåãå ¥ãããæåŠãããã決å®ã§ããã«ãŒã«ãä¿æããŸãã
ã¡ã³ãããŒãšã¡ã³ããŒã¯ããã©ãããã©ãŒã äžã«ã¢ã«ãŠã³ããæã¡ãæ¬åãŸãã¯æ¢ç¥ã®ãšã€ãªã¢ã¹ã䜿çšããå¿ èŠããããŸãã
ææªã®å Žåã誰ããæªæã®ããã³ãŒãïŒä»ã®èª°ããææãŸãã¯ææããŠããïŒãæçš¿ããå Žåãã³ãŒããåé€ã§ããããã«ã誰ããã€ãããè¡ã£ããã远跡ã§ããå¿ èŠããããŸãã å®åãŸãã¯æ¢ç¥ã®ãšã€ãªã¢ã¹ãæå®ããããšã¯ããããŒãããã®ãªã¹ã¯ãæžããããã®çè«çãªæŠç¥ã§ãã ãŸã åé¡ãçºçããŠããªãããããããæ©èœãããã©ããã¯ããããŸããã
ãããã¯ãç¹å®ããåæãããç¹å®ã®åé¡ã«å¯Ÿããæå°éã®è§£æ±ºçã§ãªããã°ãªããŸããã
ããã¯ãéçºã®åçŽããéèŠãããšããååã®å®è£ ã§ããããã«ã€ããŠã¯ããã®ç« ã®åŸåã§èª¬æããŸãã 1ã€ã®æãããªåé¡ã¯ã1ã€ã®æå°éã®ãœãªã¥ãŒã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³ããã¹ããç¹°ãè¿ãã§ãã
ãããã¯ãå®çŸ©ãããŠããå Žåããããžã§ã¯ãã³ãŒãã®ã¹ã¿ã€ã«ã¬ã€ãã©ã€ã³ã«åŸãå¿ èŠããããŸãã
ããã¯æ£æ°ã§ãã ä»ã®äººã®ããããã¯ãªãŒã³ã¢ããããã®ã«æéãè²»ãããŸããã圌ãã¯ããŠãããŒã¹ã®èŠæ±ã«å¿ããŠãäžã§ã¯ãªãifã®é£ã«ä»ã®äººã眮ãããšã䞻匵ããããã§ãã ã·ãªã¢ã«ã³ãŒãã¯æ£åžžã«èŠããŸãã
ãããã¯ã以äžã§å®çŸ©ããããããªãã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®éçºãã®ã¬ã€ãã©ã€ã³ã«åŸãå¿ èŠããããŸãã
ãããçã¿ãçã¿ã ç§ã¯8æ³ã®æã®ããšãèšã£ãŠããã®ã§ã¯ãªãã4ã€ã³ãã®çªãçªãåºãŠããããŒãã«è¶³ãèžã¿å ¥ããŸããã ãŸã äœããããŸããã§ããã ZeroMQã®è€æ°ã®äžŠè¡ãªãªãŒã¹ãããããããããç°ãªãäºææ§ã®ãªãAPIãŸãã¯æç·ãããã³ã«ã䜿çšããŠãã2010幎ãã2011幎ã«ã€ããŠè©±ããŠããŸãã ãããã¯ç¡æå³ã«ç¶ããæªãã«ãŒã«ã®ç·Žç¿ã§ããããä»æ¥ã§ãç§ãã¡ãå·ã€ããŠããŸãã ã«ãŒã«ã¯æ¬¡ã®ãšããã§ãããAPIãŸãã¯ãããã³ã«ãå€æŽããå Žåãæ°ããã¡ãžã£ãŒããŒãžã§ã³ãäœæããå¿ èŠããããŸããã 足ãçªã§åºããŸããçã¿ã¯å°ãªãã§ãã
C4ã§è¡ã£ã倧ããªå€æŽã®1ã€ã¯ããã®ãããªèš±å¯ããã劚害è¡çºã®çŠæ¢ã§ãã é©ãã¹ãããšã«ããããé£ãããããŸããã æ¢åã®å ¬å ±å¥çŽã«éåããããšã¯èš±å¯ãããŸãããããããã€ã³ãã§ããå šå¡ãåæããªãå Žåãããã§ãã Linus Torvaldsã2012幎12æ23æ¥ã«èšã£ãããã«ãããŠãŒã¶ãŒç©ºéãå£ããªãïŒã
åå è ããã®ã³ãŒãã®å ã®äœæè ã§ãªãéãããããã«ä»ã®ãããžã§ã¯ãããã®éèŠãªã³ãŒããå«ããŠã¯ãªããŸããã
ãã®ã«ãŒã«ã«ã¯2ã€ã®å¹æããããŸãã ãŸããæ¢åã®ã³ãŒãã®ãµã³ãã«ãåçŽã«ã€ã³ããŒãããããšãã§ããªãããã人ã ã¯æå°éã®æ±ºå®ãäžãå¿ èŠããããŸãã ä»ã®ã±ãŒã¹ã§ç§ã芳å¯ããããšãããã€ã³ããŒããããã³ãŒããéåžžã«æ確ã«åé¢ãããŠããªãéããããã¯åžžã«æªãçµæã«ã€ãªãããŸãã 第äºã«ãã©ã€ã»ã³ã¹ããããçŽäºã解決ããŸãã ããããäœæããLGPLãšããŠå ¬éããããšãã§ãããããåãå ¥ããããšãã§ããŸãã ããããã€ã³ã¿ãŒãããäžã§200è¡ã®ã³ãŒããèŠã€ããŠæ¿å ¥ããããšãããšãæåŠãããŸãã
å°ãªããšãã¡ã€ã³ã®ã¿ãŒã²ãããã©ãããã©ãŒã ã§ãããããæ確ã«ã³ã³ãã€ã«ãããããžã§ã¯ãã®ã»ã«ããã¹ããå®æœããå¿ èŠããããŸãã
- , , .
( 50 ) , («: ...»), , («: ...») ).
, . ( , â ).
« » â , .
, .
.
.
. : , , . ZeroMQ . . , open-source. , , , , .
, .
, . , () .
, .
«: X. : » â . «: A B, . : X» . ãªããªã , - , , : , .
.
, , . « A B, C . : C ».
, , , .
, . , , - . , , . , - , . â .
, , .
, GitHub , . . , GitHub, , , ZeroMQ, .
, , .
GitHub fork + pull request, (4), .
, Pull Request .
GitHub , git. , , git , , , â git, . , ⊠.
.
, , , . , , .
, Pull Request' .
, GitHub , , , . Wikidot, . , - .
, .
- GitHub , Pull Request' . , . , .
.
, , : . , , , , . , ( ). , , , . « » . -, , C4, , . , , . -, , , - .
.
, : , . : , , . , -, , .
.
, , . â . Pull Request' , , ( ).
: () , () , () .
, , « », , .
( , ) â , (CI), , , . , / . ( ) « , » « ».
, . . , - .
, , .
, :
- , : «, ». , , , . . , .
- , . . . , . , , .
- . - : , , . : , .
- . --. - . - . , . - . , .
- . , . « ». , . , . .
- , open source. , .
, (). , . open source :
- , , .
- , , .
- , , .
- -, .
, , (4). , (2).
:
- : , . . : .
- : , , . : , . , -. .
- : , . : . , . , .
- : , . -- . . : . . , . git- .
, .
( ) . ZeroMQ, .
, , .
, , . , .
, , .
, , , «» «». , . , « », .
libzmq
, , , . , .
, .
.
C4, . : . , .
, .
(«»), , .
, - , . - ( ), - .
«topic branch» - . «topic branch».
. ( «tl;dr», ), , â , .
, . -.
« » API . 2011
libzmq
. (.. « »)
libzmq
, , . 2012 « », .
, . «» ( , , ) â API , . , ZeroMQ 2.0, 3.0 4.0, .
(API ) .
, -, , . â . C4 , , . « ». . (, - C4, ).
.
, . , , , . ( ) .
, , , .
API, . , , . « » . ZeroMQ v3.x ZMQ_NOBLOCK ZMQ_DONTWAIT? , POSIX recv(), ? . : « ».
, , ( ).
ZeroMQ , ( â , -). ZeroMQ v.3.0 «ROUTER», , «ROUTER» 2.. , , ? : , , .
«» («draft»), .
«» («deprecated»).
, , . «» , « , ». , « , ». , , , . «» , « ».
«» («deprecated») .
, .
. , , , , API.
.
, , , ZeroMQ v3.x API (zmq_send[3] zmq_recv[3]) , ( , , ). , , , , , , , . , , ! , .
.
- , , .
, .
, . .
, , , .
, , . .
, , .
: . , ( , ).
« », , . , . « » â , , , , , .
. . C4 . -, , , . -, . , ( , , , ).
æ¬ããœãŒã·ã£ã«ã¢ãŒããã¯ãã£ãã®ç¿»èš³ïŒ
- ãŸããã 矀è¡ã®ç¥æµ
- 第1ç« ããŒã«ããã
- 第2ç«
- ãã©ã³ãã£ã¢ã®ææ çãªçãå°œã
- ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãããã£ããã£/ä¿è·ããæ¹æ³
- åã ã®ç¥æ§ã®ç¥è©± - 第3ç«
-ZeroMQã³ãã¥ããã£
- ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®å¿çåŠ
-å¥çŽã®éèŠæ§
-èªæ²»ã³ãã¥ããã£ãžã®4ã€ã®ã¹ããã - 第5ç«
-èšèšãéçºãã€ãããŒã·ã§ã³
-ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®æåã®ããã®æŠç¥ - 第6ç« ç掻ã·ã¹ãã
èè
ã«ã€ããŠ
ãæ®å¿µãªãããç§ãã¡ã¯èªåèªèº«ã®ããã«æ»ãéžã¶ããšã¯ããŸããããç·æ§ãšããŠèšæ¶ãããããã«å°å³ããã£ãŠæ»ã«äŒãããšãã§ããŸããã
-æ ç»ãã°ã©ãã£ãšãŒã¿ãŒã
ããŒã¿ãŒã»ãã³ãã§ã³ã¹ïŒããŒã¿ãŒã»ãã³ãã§ã³ã¹ïŒ-ãã«ã®ãŒã®éçºè ãäœå®¶ã 圌ã¯ã ZeroMQã©ã€ãã©ãªïŒã©ã€ãã©ãªãããŒã¿ã®ãããã¡ãªã³ã°ããã¥ãŒã€ã³ã°ãæ¥ç¶ã®ç¢ºç«ãšå埩ãªã©ãåŠçããŸãïŒãOpenAMQã Libero ã GSLã³ãŒããžã§ãã¬ãŒã¿ãŒãªã©ã®ããªãŒãœãããŠã§ã¢ãçç£ããiMatixã® CEOããã³ããŒããœãããŠã§ã¢ãã¶ã€ããŒãåããŸãããããã³Xitami WebãµãŒãã¹ã
詳现ã¯ãã¡ãïŒ 35幎éããã¯ããã³ãµãŒãšããŠãã³ãŒãã䜿çšããŠæ»ãã éã«åœãå¹ã蟌ã¿ãŸãã
Peter Hinchensã®Webãµã€ã
ãŠã£ãããã£ã¢ã®èšäº
Habréã®Peter Hinchensã®èããšã¢ã€ãã¢ïŒ
-æ ç»ãã°ã©ãã£ãšãŒã¿ãŒã
ããŒã¿ãŒã»ãã³ãã§ã³ã¹ïŒããŒã¿ãŒã»ãã³ãã§ã³ã¹ïŒ-ãã«ã®ãŒã®éçºè ãäœå®¶ã 圌ã¯ã ZeroMQã©ã€ãã©ãªïŒã©ã€ãã©ãªãããŒã¿ã®ãããã¡ãªã³ã°ããã¥ãŒã€ã³ã°ãæ¥ç¶ã®ç¢ºç«ãšå埩ãªã©ãåŠçããŸãïŒãOpenAMQã Libero ã GSLã³ãŒããžã§ãã¬ãŒã¿ãŒãªã©ã®ããªãŒãœãããŠã§ã¢ãçç£ããiMatixã® CEOããã³ããŒããœãããŠã§ã¢ãã¶ã€ããŒãåããŸãããããã³Xitami WebãµãŒãã¹ã
- 30以äžã®ãããã³ã«ãšåæ£ã·ã¹ãã ã®äœæè ã
- å®å šã«å®å šãªå¿åã®ã°ããŒãã«P2Pãããã¯ãŒã¯ãäœæããEdgenetãããžã§ã¯ãã®åµèšè ã
- ç¹èš±æ³ãšéã£ãç¡ææ å ±åºç€è²¡å£ïŒFFIIïŒåäŒã®äŒé· ã
- ãŠã£ããããç¬èªã®ãŠã£ããããžã§ã¯ãã® CEOã
- 圌ã¯ã ãªãŒãã³ã¹ã¿ã³ããŒãã®æŽ»å家ã§ããã Digital Standards Organizationã®åµèšè ã§ããã
- 2007幎ã®ããŒã¿ãŒã¯ããç¥ç財ç£ãã®åéã§æã圱é¿åã®ãã50人ã®äžäººã«éžã°ããŸããã
詳现ã¯ãã¡ãïŒ 35幎éããã¯ããã³ãµãŒãšããŠãã³ãŒãã䜿çšããŠæ»ãã éã«åœãå¹ã蟌ã¿ãŸãã
æåŸã®èšäºã®æéã§ãã ãã£ãšæžãããšãã§ããŸãããæéã¯ãããŸãããããããä»ã®ããšã«ã€ããŠèããŸãããããã«å ¥ãã®ãããã«äŸ¿å©ããé®çå€ããã€é£²ããããããŠé£ã®äººã ã«ã€ããŠã
...æåŸã®ã¢ãã«ã§ãããæåŸã®ãããã³ã«ãäœæããŸããããã¯ãããã€ãã®ç¥èãšæéãæ®ããŠã亡ããªãæ¹æ³ã«å°å¿µããŠããŸãã ä»åã¯RFCããã©ãŒãããããŸããã :)
ã©ã€ããããã³ã«
Peter Hinchensã®Webãµã€ã
ãŠã£ãããã£ã¢ã®èšäº
Habréã®Peter Hinchensã®èããšã¢ã€ãã¢ïŒ
- ã©ã€ããããã³ã«
- 楜芳çããŒãžïŒæåã«äººã次ã«ã³ãŒãã é©åãªã³ãã¥ããã£ãæ§ç¯ããå¿ èŠãªã³ãŒããäœæããŸã
- ãœãŒã·ã£ã«ã¢ãŒããã¯ãã£ïŒãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®æåã®ããã®æŠç¥
- ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãããã£ããã£/ä¿è·ããæ¹æ³
- ã³ãã¥ããã£ãæ§ç¯ããæ¹æ³ã æ¬ããœãŒã·ã£ã«ã¢ãŒããã¯ãã£ãã®ç¿»èš³ïŒç¬¬1ç« ããŒã«ããã
æžç±ç¿»èš³ãããžã§ã¯ãã«ã€ããŠ
ç§ã¯ã Filtech-acceleratorã®æ¯æŽãåŸãŠãHabréã§ïŒãããŠããããã¯çŽã§ïŒæ¬ãSocial Architectureãã®ç¿»èš³ãå
¬éããäºå®ã§ãã ç§èŠãããã¯ã 補åã®äœæã«çŠç¹ãåœãŠãã³ãã¥ããã£ã®ç®¡ç/æ§ç¯/æ¹åã®ããã®ïŒé©åãªã ãã§ã¯ãªãã«ããŠãïŒæé«ã®æåœã§ã ïŒãªãŒããŒãã¹ããŒãã¯ã©ããªã©ã®çžäºã°ã«ãŒãã³ã°ããåŽæãã®ããã§ã¯ãããŸããïŒã
filtekhã¹ã¿ãŒãã¢ããã®ã¢ã¯ã»ã©ã¬ãŒã¿ã®ã¢ããªã±ãŒã·ã§ã³ã®åãå ¥ãã¯ç¶ç¶ããŠããŸã
Filtechã®äŸ¡å€ã«èŠåã£ãé«ãæè¡ã·ã§ã¢ãæã€ãããžã§ã¯ã/ã¹ã¿ãŒãã¢ããã念é ã«çœ®ããŠããå Žåã¯ããæ°è»œã«ç³è«æžãæåºããŠãã ãã ã
2æ25æ¥ãŸã§ãŸã æéããããŸãïŒ
é»å ±ã§ãã£ãã
PhilTechãããžã§ã¯ããéçºããŠããããŸãã¯åã«ç€ŸäŒéšéã®ãã¯ãããžãŒã«èå³ããã人ã ã®ã³ãã¥ããã£ã
#philtechãã¥ãŒã¹
#philtechã®ã€ããªãã®ãŒã®ãããžã§ã¯ãã«é¢ãããã¥ãŒã¹ãšæçšãªè³æãžã®ãªã³ã¯ã
FacebookããŒãž
Philtechã®ã¹ã¿ãŒãã¢ãããã¥ãŒã¹ãæ å掻åã®ããã®ãã¯ãããžãŒã®äžçããã®ãã·ã¢ããã³åœéçãªã€ãã³ãã
ãã¥ãŒã¹ã¬ã¿ãŒã賌èªãã
æè¡ãšæ åã®äžçããã®é±åãã¥ãŒã¹ã¬ã¿ãŒã