1. Rustèšèªã®ç¹åŸŽ
Rustã¯é«æ§èœãã€å®å šæ§ãéèŠããããã°ã©ãã³ã°èšèªã§ãã以äžã§ã¯Rustã®æŠèŠãããã®ç¹è²ãŸã§ã詳ãã解説ããŸãã
1.1 Rustã®æŠèŠãšç®æãããžã§ã³
Rustã¯ã³ã³ãã¥ãŒã¿ããã°ã©ãã³ã°èšèªãšããŠCãC++ã«æ¿ããååšãç®æããŠèšèšãããŸããã䞊è¡åŠçãšã¡ã¢ãªç®¡çã®å®å šæ§ã確ä¿ããäžæ¹ã§ãäœã¬ãã«ã®ã·ã¹ãã ããã°ã©ãã³ã°ãé«åºŠãªåæšè«ãªã©ãç¹åŸŽãšããŠããŸãã
ãŸããRustã¯åŒ·åŒãªåã§ã¯ãªãã人éã®æèã«ããè¿ãæ¹æ³ã§ã³ãŒããæžãããã®æ¯æŽãæäŸããããšãæ¬è³ªçãªç®çãšããŠããŸãããã®ãããå®å šæ§ãé床ãåææ§ãäž¡ç«ãã€ã€ãäœäžã¬ãã«ã®å¶åŸ¡ãå¯èœã«ããŠããŸãã
ããã«ãRustã¯ããŒãã³ã¹ãæœè±¡åããç¹åŸŽãšããŠãããæœè±¡åãããã©ãŒãã³ã¹ã«åœ±é¿ãäžããªãããšãä¿èšŒããŠããŸããããã«ãããéçºè ã¯æœè±¡åã䜿ã£ãŠã³ãŒããçµç¹åããåå©çšæ§ãšå¯èªæ§ãåäžãããããšãå¯èœã§ãã
1.2 Rustã®ã¡ã¢ãªå®å šæ§ãšé床
Rustã®äž»ãªåŒ·ã¿ã®äžã€ã¯ãã¡ã¢ãªå®å šæ§ãå®çŸãã€ã€é«éãªå®è¡é床ãç¶æããŠãããšããç¹ã§ããããã¯ãRustãã¡ã¢ãªç®¡çãã³ã³ãã€ã«æã«è¡ã£ãŠããããããå¯èœãªç¹æ§ã§ãã
Rustã®ã³ã³ãã€ã©ã¯ãæææš©ã·ã¹ãã ãã©ã€ãã¿ã€ã ãä»ããŠã¡ã¢ãªã管çããŸããããã«ãããè€æ°ã®åç §ãåãããŒã¿ã«å¹³è¡ã¢ã¯ã»ã¹ããããšãé²æ¢ããããŒã¿ç«¶åãã»ã°ã¡ã³ããŒã·ã§ã³éåã®ãããªãã°ãæªç¶ã«é²ããŸãã
ãŸããRustã¯JITã³ã³ãã€ã©ãå¿ èŠãšããªããããCãC++䞊ã¿ã®é«éãªããã©ãŒãã³ã¹ãçºæ®ããŸããããã«ã¬ããŒãžã³ã¬ã¯ã¿ãå¿ èŠãšããªããããå®è¡é床ãäžå®ã§ããã°ã©ã ãæ£åžžã«åäœãç¶ããããšã確ä¿ããŠããŸãã
1.3 Rustã®ãšã³ã·ã¹ãã
ãŸããRustã®åŒ·ã¿ã®äžã€ã«ã¯ãè±ããªãšã³ã·ã¹ãã ããããŸããããã¯ãRustã®ããã±ãŒãžãããŒãžã£Cargoããã«ãã·ã¹ãã ããã¹ããã¬ãŒã ã¯ãŒã¯ãªã©äžé£ã®ããŒã«ãçµ±åãããã®ã§ãã
Cargoã¯åŒ·åãªããã±ãŒãžãããžã¡ã³ãã·ã¹ãã ã§ãäŸåé¢ä¿ã®ç®¡çããã«ãããã¹ããããã¥ã¡ã³ãçæãªã©ãéçºè ã®ããŒãºãæºããããã®æ©èœãæäŸããŸããããã«ãããäžè²«ããã¯ãŒã¯ãããŒãå®çŸããéçºäœéšãå€§å¹ ã«æ¹åããŸãã
ããã«ãRustã®ãšã³ã·ã¹ãã ã«ã¯ãããŸããŸãªçšéãšããŒãºãæºããããã®æ§ã ãªã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãçšæãããŠããŸãããããã¯å šãŠãã¯ãã¹ãã©ãããã©ãŒã ã§ãããWindowsãLinuxãmacOSçã®ç°ãªãOSéã§å©çšããããšãå¯èœã§ãã
1.4 Rustã泚ç®ãããçç±
Rustã泚ç®ãããçç±ã®äžã€ã«ã倧æäŒæ¥ã«ããæ¡çšãæããããŸããMicrosoftãGoogleãAmazonãªã©ã®å€§æäŒæ¥ã¯Rustãæ¡çšããŠããããããã®äŒæ¥ãRustã®æ§èœãšå®å šæ§ãèªããŠããããšã¯å€§ããªä¿¡é ŒãæãããŸãã
ãŸããRustã¯æ¯å¹Žã¹ã¿ãã¯ãªãŒããŒãããŒã®éçºè 調æ»ã§ãæãæãããŠããèšèªãã«éžã°ããŠããŠãããéçºè ã³ãã¥ããã£ããã®é«ãæ¯æãåŸãŠããŸããããã¯ãRustãåªããæ©èœãšããŒã«ãæã¡ã€ã€ãããã®èšèªãã¶ã€ã³ãšã³ãã¥ããã£ã®åªåã«ãããéçºè ãæ±ããç°å¢ãæäŸããŠãããšããããšã瀺ããŠããŸãã
æåŸã«ãRustã¯å ç¢æ§ãšå®å šæ§ããããŠé床ãå Œãåããèšèªã§ãããããããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãã·ã¹ãã ã¬ãã«ã®éçºã§æŽ»çšãããŠããŸããç¹ã«ãçµã¿èŸŒã¿ã·ã¹ãã ãäœã¬ãã«ã®ã·ã¹ãã éçºã«ãããŠã¯ãRustã®ååšæã¯æ¬ ãããŸããã
2. Rustã®ãã¬ãŒã ã¯ãŒã¯å šäœå
ç©æ¥µçãªæ¡çšã«ãããéçºè ã®éã§çš®ã ã®ãã¬ãŒã ã¯ãŒã¯ãçãŸããŠããŸããæã䜿ãããŠãããã¬ãŒã ã¯ãŒã¯ãç解ãããããããæäŸããç¹æ§ãšæ©èœãææ¡ããããšã§ãéçºè ã¯èªåãè¡ã£ãŠãããããžã§ã¯ãã«æé©ãªããŒã«ãéžæããããšãã§ããŸãã
2.1 ãã¬ãŒã ã¯ãŒã¯ãšã¯äœã
åºæ¬çãªæŠå¿µããå§ãããšããã¬ãŒã ã¯ãŒã¯ãšã¯äžé£ã®ããŒã«ãã©ã€ãã©ãªãããã³ã¬ã€ãã©ã€ã³ãæäŸããç¹å®ã®ã¿ã¹ã¯ã®å®è¡ã容æã«ããéçºããŒã«ã»ããã®ããšãæããŸãããã¬ãŒã ã¯ãŒã¯ã¯éçºè ãçæéã«å¹ççã«ããããŠå ç¢ãªãœãããŠã§ã¢ãæ§ç¯ã§ããããã«èšèšãããŠããŸãã
ããã«ããéçºè ã¯ããè»èŒªã®åçºæããããã«ãæ¢åã®è§£æ±ºçã掻çšããéçºããã»ã¹ãé«éåã§ããŸãã
ç¹ã«Rustã§éçºãè¡ãå Žåãåé¡è§£æ±ºãæå©ããããã¬ãŒã ã¯ãŒã¯ã®äœ¿çšã¯äºå®äžå¿ é ãšãªããŸãã
2.2 äœæ Rustã«ãã¬ãŒã ã¯ãŒã¯ãå¿ èŠã
Rustã¯éçåä»ããã¡ã¢ãªå®å šæ§ãç®æãå é²çãªã·ã¹ãã ããã°ã©ãã³ã°èšèªã§ãããã®é©æ°çãªèšèšãããŸããŸãªå¯èœæ§ãéããŠããŸãããäžæ¹ã§éçºè ãçŽé¢ããè€éããå¢ãããŠããŸãã
ãã¬ãŒã ã¯ãŒã¯ã®äœ¿çšã¯ããã®è€éããæœè±¡åããç¹°ãè¿ãå©çšå¯èœãªã³ãŒãããã¿ãŒã³ãæäŸããããšã§ãå¹ççãªRustéçºãå¯èœã«ããŸãã
ãŸãããã¬ãŒã ã¯ãŒã¯ã¯ã³ãŒãã®äºææ§ãåå©çšæ§ãããã³ã¡ã³ããã³ã¹æ§ãé«ããããã倧èŠæš¡ãªãããžã§ã¯ããããŒã ã¯ãŒã¯ã容æã«ããŸãã
2.3 Rustãã¬ãŒã ã¯ãŒã¯ã®ç¹åŸŽ
Rustãã¬ãŒã ã¯ãŒã¯ã¯ãäžè¬çã«ã¯ã䞊è¡æ§ãéåæåŠçãããã³å€éåã«çŠç¹ãåœãŠãŠèšèšãããŠããŸãããããã¯ãã¹ãŠãRustéçºè ãã«ã¹ã¿ã ãœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ããã°ãããå¹ççã«ãå®å šã«æ§ç¯ã§ããããã«ããããã®ç¹æ§ã§ãã
ãŸããRustãã¬ãŒã ã¯ãŒã¯ã¯ã©ããé«ãããã©ãŒãã³ã¹ãæäŸããŸããããã¯ãRustèšèªã®ã¡ã¢ãªå®å šæ§ä¿èšŒãšéçåä»ãã®ã¡ãªãããšåããã£ãŠããŸãã
ããããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãç¹å®ã®ããŒãºãç®æšã«å¯Ÿå¿ããããã«ç°ãªãç¹æ§ãšåŒ·ã¿ãæã€ããããããžã§ã¯ãã®å ·äœçãªèŠä»¶ã«åºã¥ããŠé©åãªãã®ãéžæããããšãéèŠã§ãã
2.4 Rustãã¬ãŒã ã¯ãŒã¯éžæã®ãã€ã³ã
é©åãªRustãã¬ãŒã ã¯ãŒã¯ãéžæããããã®äž»èŠãªãã€ã³ãã¯ããã¬ãŒã ã¯ãŒã¯ã®æ©èœãããã©ãŒãã³ã¹ãåŠç¿æ²ç·ããããŠãµããŒãã®è³ªã§ãã
ããããæ€èšããããšã«ãããç¹å®ã®ãããžã§ã¯ããããžãã¹èŠä»¶ã«æé©ãªãã¬ãŒã ã¯ãŒã¯ãéžæããããšãå¯èœã«ãªããŸãã
ãã¬ãŒã ã¯ãŒã¯ã®éžæã¯å€§ãã«äž»èŠ³çã§ããããããžã§ã¯ãã®ä»æ§ãéçºè ã®çµéšãšã¹ãã«ããããŠæã«ã¯å人ã®å¥œã¿ã«ãäŸåããŸããããããããã¬ãŒã ã¯ãŒã¯ãéžã¶éã«ã¯èªèº«ã®ããŒãºãšåããã©ãããããèããããšãéèŠã§ãã
3. ãã¬ãŒã ã¯ãŒã¯actix-webã®æ·±æã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãRustã§ã®Webéçºã«æ¬ ãããªããã¬ãŒã ã¯ãŒã¯ã®äžã€ã§ããactix-webã«ã€ããŠè©³ããèŠãŠãããŸãã
3.1 actix-webã®ç¹åŸŽãšå©ç
actix-webã¯ããã®äœ¿ãããããšè±å¯ãªæ©èœã§ç¥ãããRustã®ãŠã§ããã¬ãŒã ã¯ãŒã¯ã§ãããã®å©çšè æ°ã¯äžçäžã§å€ããç¹ã«æ¥æ¬åœå ã§ã質ã®é«ãæ¥æ¬èªæ å ±ãæã£ãŠãããå§ãããããé åã§ãã
ãŸããactix-webã®ç¹è²ãšããŠãè±å¯ãªæ©èœãšå å®ãããµã³ãã«ãæã£ãŠããç¹ãæããããŸããããã«ãããæ§ã ãªã¬ãã«ã®éçºè ãããã¯ãšã³ãã®éçºãè¡ãéã«å©çã享åã§ããŸãã
ãã®ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§ãRustã§ã®Webéçºãããå¹ççãã€é«éã«è¡ãããããéçºã³ã¹ãã®åæžã«ã€ãªãããŸãã
3.2 actix-webã®ç°å¢èšå®
ç°å¢èšå®ã¯åãã¬ãŒã ã¯ãŒã¯ã®èŠãšãªããŸããactix-webãäŸå€ã§ã¯ãªããé©åãªã»ããã¢ãããå¿ èŠã§ãããããããããã¯ãã®äœ¿ããããã®äžéšã§ãããéåžžã¯é£ãããªãã§ãã
Rustã®ç°å¢èšå®åŸã«ããããžã§ã¯ãã®Cargo.tomlã«actix-webãè¿œå ããã ãã§ãããã«éçºãéå§ããããšãå¯èœã§ãã
å°éçãªèšå®ãå¿ èŠãªå Žåã§ããå å®ããå ¬åŒããã¥ã¡ã³ããè±å¯ãªã³ãã¥ããã£ãªãœãŒã¹ãéçºè ããµããŒãããŠããŸãã
3.3 actix-webã®äœ¿çšäŸ
ããã§ã¯actix-webã«ããåçŽãªWebã¢ããªã±ãŒã·ã§ã³ã®å®è£ äŸã玹ä»ããŸããå ·äœçãªãœãŒã¹ã³ãŒãã¯å ¬åŒãªããžããªçã§ç¢ºèªããããšãå¯èœã§ãã
ãŸãã¯ãactix-webã䜿ã£ãREST APIã®äœæããå§ããŸãããã®äŸã§ã¯ãç¹å®ã®ããŒã¿ãååŸããŠã¬ã¹ãã³ã¹ãšããŠè¿ãã·ã³ãã«ãªAPIãäœæããŸãã
次ã«ãactix-webã䜿ã£ãŠéçãã¡ã€ã«ããã¹ãããæ¹æ³ãèŠãŠãããŸããããã«ãŠã§ã¢ã®äœ¿çšæ¹æ³ãç解ããäžã§ããã®äŸã¯æçšã§ãã
3.4 actix-webã®äœ¿ãã©ãã
Webã¢ããªã±ãŒã·ã§ã³ãREST APIã®éçºã ãã§ãªããactix-webã¯ä»ã®å€ãã®çšéã§ã䜿çšãããŠããŸãããã®æ©èœã®ä¿¡é Œæ§ãšå®å®æ§ããã倧èŠæš¡ãªåçšãããžã§ã¯ãã§ãé »ç¹ã«æ¡çšãããŠããŸãã
äŸãã°ãWebSocketãµãŒãã®å®è£ ãã¹ããªãŒãã³ã°ã¬ã¹ãã³ã¹ã®çæçãactix-webã®æ©èœã¯åºç¯ã«ããããŸãã
è€éãªèŠæ±ãæã€ã·ã¹ãã ã®éçºã«ãããã®çµã¿èŸŒã¿ã®ãšã©ãŒãã³ããªã³ã°ããã¹ãæ©èœãªã©ã掻çšããããšã§ãactix-webã¯åŒ·åãªããŒã«ãšãªããŸãã
4. ãã¬ãŒã ã¯ãŒã¯Tauriã®æ·±æã
ãã¬ãŒã ã¯ãŒã¯ã®éžæã¯Rustéçºã®å¹çåäžã«çŽçµããŸããä»åããã©ãŠã¶ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ãå¹æçã«æ§ç¯ããããã®ãã¬ãŒã ã¯ãŒã¯ãTauriã«çŠç¹ãåœãŠãŠã¿ãŸãããã
Tauriã¯äžèšã§èšããšè»œéãªãã¬ãŒã ã¯ãŒã¯ã§ãã軜éã ãããããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãéèŠããéçºè ã«ããããã§ããŸãã
æŽã«èšãã°ãç¹æ®ãªã¬ã³ããªã³ã°ãšã³ãžã³ã®çµã¿èŸŒã¿ãå¿ èŠãšãããã¯ãã¹ãã©ãããã©ãŒã ã«å¯Ÿå¿ããç¹ã倧ããªç¹åŸŽãšèšããã§ãããã
4.1 Tauriã®ç¹åŸŽãšå©ç
ãŸããTauriã軜éã§ããããšã¯ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«å€§ããªå©çããããããŸããäžå¿ èŠãªã©ã€ãã©ãªãŒãã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«ãäžèŠãªã®ã§ãããã¹ãªã ã§ãã¬ãã·ãã«ãªäžæ¹ã§é«éãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãåºæ¥ãŸãã
次ã«ãã¬ã³ããªã³ã°ãšã³ãžã³ã®çµã¿èŸŒã¿ãäžèŠã§ããããšã¯ãéçºè ããŠã§ããã¯ãããžãŒã«éäžããããšãå¯èœã«ããŸãããããçµæãšããŠéçºé床ãç¶æ管çã®å¹çåã«ã€ãªãããŸãã
ãŸããTauriã¯ã¯ãã¹ãã©ãããã©ãŒã ã«å¯Ÿå¿ããŠããŸããããã«ããäžã€ã®ã³ãŒãããŒã¹ã§ãWindowsãMacãLinuxãšãã£ãç°ãªãOSã§åäœããã¢ããªã±ãŒã·ã§ã³ãéçºã§ããŸããããã¯éçºã³ã¹ãã®åæžã«ã€ãªãããŸãã
4.2 Tauriã®ç°å¢èšå®
ãŸãæåã«ãRustã®ç°å¢èšå®ãå¿ èŠã§ããRustã¯åOSã®ããã±ãŒãžãããŒãžã£ããããã¯å ¬åŒãµã€ãããããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããããšãå¯èœã§ãã
ãã®åŸãTauriã®CLI(Command Line Interface)ãã€ã³ã¹ããŒã«ããæ°ãããããžã§ã¯ããéå§ããŸããTauri CLIã¯npmçµç±ã§ã€ã³ã¹ããŒã«ã§ããŸãã
æåŸã«ãå¿ èŠãªäŸåé¢ä¿ã解決ãã`tauri dev`ã³ãã³ããå®è¡ãããšãéçºãµãŒããç«ã¡äžãããŸããããã«ãã£ãŠTauriã§ã®éçºç°å¢èšå®ã¯å®äºãšãªããŸãã
4.3 Tauriã®äœ¿çšäŸ
UIéšåã¯Vue.jsãReactãAngularãªã©ã®ãã¬ãŒã ã¯ãŒã¯ããçŽç²ãªHTML/CSS/JavaScriptã§äœæã§ããŸãããã®åŸãTauri CLIãçšããŠã¢ããªã±ãŒã·ã§ã³ã®ãã«ããããã±ãŒãžã³ã°ãè¡ããŸãã
ãŸããTauriã¯Rustã®åŒ·åãªåå®å šæ§ãšäœµããŠäœ¿çšããããšã§ããã°ã®æªç¶é²æ¢ãã¢ããªã±ãŒã·ã§ã³ã®å®å šæ§åŒ·åã«è²¢ç®ããŸãã
ãã®ä»ã«ããTauriã¯ãŠã§ãã¢ããªã±ãŒã·ã§ã³ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãšããŠæ§ç¯ããå Žåã«ã䜿çšã§ããŸããããã¯ãŠã§ãæè¡ã§ãªãããªUIãå®çŸãã€ã€ãRustã®ããã©ãŒãã³ã¹ãšå®å šæ§ã掻ããããšãã§ããŸãã
4.4 Tauriã®äœ¿ãã©ãã
Tauriã¯åè¿°ã®ããã«ãŠã§ãæè¡ã«ãããªãããªUIãå®çŸãã€ã€ãRustã®ããã©ãŒãã³ã¹ãšå®å šæ§ãèŠæ±ããã¢ããªã±ãŒã·ã§ã³éçºã«é©ããŠããŸãã
ãŸããè€æ°ã®OSã§åäœããã¢ããªã±ãŒã·ã§ã³ãã·ã³ã°ã«ã³ãŒãããŒã¹ã§å¹çè¯ãéçºãããå ŽåãããªãœãŒã¹å¶çŽã匷ãç°å¢ã§åäœããã¢ããªã±ãŒã·ã§ã³ãéçºãããå Žåã«ãTauriãé©ããŠããŸãã
ãããŠäœããããŠã§ãæè¡ã«è©³ããRustã®ããã©ãŒãã³ã¹åäžã«èå³ãããéçºè ã«ã¯ãTauriã®éžæã¯äžå±€ã®éçºäœéšåäžãããããã§ãããã
5. ãã¬ãŒã ã¯ãŒã¯Axumã®æ·±æã
5.1 Axumã®ç¹åŸŽãšå©ç
ã¯ããã«ãAxumã®ç¹åŸŽãšå©çã«ã€ããŠæŠèª¬ããŸããAxumã¯ãRust ãã¬ãŒã ã¯ãŒã¯ã®äžã§ãç¹ã«èšèšãã·ã³ãã«ã§ããããããåå¿è ã«ãšã£ãŠã¯ç解ãããããšãã倧ããªå©ç¹ãšãªã£ãŠããŸãã
ãŸãããšã©ãŒãã³ããªã³ã°ã容æãªç¹ãAxumã®ç¹åŸŽã§ããæ¡åŒµæ§ãšæè»æ§ã«åªãããšã©ãŒãã³ããªã³ã°æ©èœã«ãããéçºè ã¯èªèº«ã®ã³ãŒãã®å質ã確ä¿ãããããªããŸãã
ããã«ãAxumã¯ã¢ãžã¥ãŒã«ããŒã¹ã®éçºãå¯èœã«ãã倧ããªãããžã§ã¯ãã§ã管çããããæ§é ãšãªã£ãŠããŸããã¢ãžã¥ãŒã«ããŒã¹ã®èšèšã¯ãã³ãŒãã®åå©çšã奚å±ããéçºããã»ã¹ãå¹çåããäžã§éåžžã«æçšã§ãã
5.2 Axumã®ç°å¢èšå®
Axumã®ç°å¢èšå®ã¯éåžžã«ã·ã³ãã«ã§çŽæçã§ãããæéãç¡é§ã«ããã«èšå®ããããšãå¯èœã§ãããŸããAxumã®å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ã¯è©³çŽ°ã§åãããããæŽçãããŠãããç°å¢èšå®ã«å°ã£ããšãã§ãããã«è§£æ±ºçãèŠã€ããããšãã§ããŸãã
åºæ¬çã«ãRustããã°ã©ãã³ã°ã®åºæ¬çãªç°å¢èšå®ãšåæ§ã«ãæåã«Rustã®ã€ã³ã¹ããŒã«ãšå®è¡ç°å¢ã®ã»ããã¢ãããå¿ èŠã§ãããã®äžã§ãCargoã³ãã³ããRustã®ããã±ãŒãžç®¡çããŒã«ãå©çšããŠãAxumã®ããã±ãŒãžããããžã§ã¯ãã«è¿œå ããŸãã
ãŸããAxumã¯éåæã©ã³ã¿ã€ã ãæäŸããŸãã®ã§ãéåæ察å¿ã®ç°å¢ãåæã«ã»ããã¢ããããå¿ èŠããããŸããããããRustã®ããã±ãŒãžç®¡çããŒã«ã䜿çšããããšã§å®¹æã«è¡ãããšãã§ããŸãã
5.3 Axumã®äœ¿çšäŸ
Axumãçšããç°¡åãªWebãµãŒãã®äœæäŸã玹ä»ããŸãããŸãã¯Axumã®ã«ãŒã¿ãŒã䜿çšããŠãHTTPãªã¯ãšã¹ããžã®å¯Ÿå¿ãå®çŸ©ããŸãããã®åŸãAxumã®Serverã³ã³ããŒãã³ãã䜿çšããŠãWebãµãŒããç«ã¡äžããŸãã
ãã®ãããªãœãŒã¹ã³ãŒãã®äžéšãæžããŠã¿ãããšã§ãAxumã®ã·ã³ãã«ããšçŽææ§ãããç解ã§ããã§ãããã
ããã«ã詳现ãªäœ¿çšäŸããã¥ãŒããªã¢ã«ã¯å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãåç §ããŠããã ããããšæããŸããããã«ã¯Axumã®åŒ·åãªæ©èœãæ倧éã«æŽ»çšããããã®æ å ±ãè±å¯ã«å«ãŸããŠããŸãã
5.4 Axumã®äœ¿ãã©ãã
Axumã¯ãã®ã¢ãžã¥ãŒã«æ§ã®é«ããããç¹ã«å€§èŠæš¡ãªWebã¢ããªã±ãŒã·ã§ã³éçºã«é©ããŠããŸããè€æ°ã®éçºè ãäžç·ã«äœæ¥ãè¡ãéã«ããåéçºè ã¯èªèº«ãæ åœããã¢ãžã¥ãŒã«ã ãã«çŠç¹ãåœãŠãã°ãããããå¹ççãªéçºãå¯èœã§ãã
ãŸããã·ã³ãã«ããšãšã©ãŒãã³ããªã³ã°ã®å®¹æããããåå¿è ãåŠçãRustèšèªãšWebéçºã®åŠç¿ã®äžç°ãšããŠAxumãæ€èšããããšãããããããŸããç¬èªã®ãããžã§ã¯ããå§ããåã®ç·Žç¿ãšããŠãAxumã䜿çšããã®ãæé©ã§ãã
以äžã®ãããªç¹ãèžãŸãããšãAxumã¯ããããã¬ãã«ã®éçºè ã«ãšã£ãŠãé«æ§èœãªWebã¢ããªã±ãŒã·ã§ã³éçºããŒã«ãšããŠã確åºããå°äœãç¯ããŠããŸãã
6. ããå¹ççãªRustéçºã®ããã«
匷åãã€åŒ·éãªããã°ã©ãã³ã°èšèªãRustã®éçºã·ãŒã³ã«ãããŠã¯ãæ°ã ã®ãã¬ãŒã ã¯ãŒã¯ãšéçºããŒã«ãçŸãããããã¯æ¥ã é²åãç¶ããŠããŸãããããŠãããããã®ãã¬ãŒã ã¯ãŒã¯ãããŒã«ã¯ããããã®ç¬ç¹ãªæ©èœãæã¡ããããžã§ã¯ãã®ããŒãºãéçºè ã®ã¹ãã«ãéžå¥œã«ããããã®é©çšã決ãŸããŸãã
6.1 ãã¬ãŒã ã¯ãŒã¯ã®éžææé
ãã¬ãŒã ã¯ãŒã¯ã®éžæãè¡ãã«ããã£ãŠã¯ããŸããããžã§ã¯ãã®ããŒãºãæããã«ããŸããããã¯ãã©ã®ãããªããã°ã©ã ãäœãã®ããã©ã®ãããªæ©èœãå¿ èŠãšãããã®ããšããããšãåãã«ç解ããããšãå¿ èŠã§ããããã«ãããã©ã®ãã¬ãŒã ã¯ãŒã¯ãæãé©ããŠããã®ãã決ãŸããŸãã
次ã«éçºè ã®ã¹ãã«ãéžå¥œãèæ ®ããŸããç¹ã«Rustã¯ææ³ãå³æ Œã§ããããããã¬ãŒã ã¯ãŒã¯ã®éžæãéçºè ã®ã¹ãã«ãéžå¥œã«å€§ããå·Šå³ãããŸãããããã¬ãŒã ã¯ãŒã¯ãéåžžã«åªããŠãããšããŠããããã«å¯Ÿå¿ããããã®éçºã¹ãã«ãç解ããªããã°ååãªããã©ãŒãã³ã¹ãçºæ®ããããšã¯é£ãããšèšããŸãã
æåŸã«ããã¬ãŒã ã¯ãŒã¯ã®ã³ãã¥ããã£ãŒã®æŽ»çºããæ å ±ã®è±å¯ããèŠãŠãããšããã§ããããè³æãè±å¯ã§ã掻çºãªã³ãã¥ããã£ã®ãããã¬ãŒã ã¯ãŒã¯ã®æ¹ããåé¡ãèµ·ããéã«ã¯ãæ©ãã«è§£æ±ºããããšãå¯èœã§ãããéçºãã¹ã ãŒãºã«é²ããšèšããŸãã
6.2 ãã¬ãŒã ã¯ãŒã¯ä»¥å€ã®RustéçºããŒã«
ãã¬ãŒã ã¯ãŒã¯ä»¥å€ã«ããRustã®éçºã«åœ¹ç«ã€ããŒã«ãå€æ°ååšããŸããäŸãã°ãRustã®ããã±ãŒãžãããŒãžã£ã§ããCargoã¯ããããžã§ã¯ãã®äŸåé¢ä¿ã®ç®¡çãå©ãããã«ãããã¹ãã®èªååãå¯èœã«ããŸãã
ãŸããClippyã¯Rustã®éç解æããŒã«ã§ãããå€ãã®äžè¬çãªãã¹ãæé©åãããŠããªãã³ãŒããèŠã€ãåºããä¿®æ£ãææ¡ããŸããããã«ãããéçºè ã¯ããè¯ãRustã®æ £äŸãåŠã³ãé«å質ãªã³ãŒããæžãããšãã§ããŸãã
ããã«ãRustã®ææžåããŒã«ã§ããRustdocã¯ãRustã®ã³ãŒãããçŽæ¥ããã¥ã¡ã³ããŒã·ã§ã³ãçæããããšãã§ããã³ãŒãã®ä¿å®æ§ãåäžãããŸãã
6.3 ãã«ããã¬ãŒã ã¯ãŒã¯ã®å©çš
ãã¬ãŒã ã¯ãŒã¯ã®éžæã¯éèŠã§ããäžæ¹ã§ãäžã€ã®ãã¬ãŒã ã¯ãŒã¯ã ãã«é Œãã®ã§ã¯ãªããå¿ èŠã«å¿ããŠè€æ°ã®ãã¬ãŒã ã¯ãŒã¯ã䜵çšããããšãæçšãªå ŽåããããŸããäŸãã°ã軜éãªãã€ã¯ããã¬ãŒã ã¯ãŒã¯ãšãè±å¯ãªæ©èœãæã€ãã¬ãŒã ã¯ãŒã¯ãçµã¿åãããããšã§ããããžã§ã¯ãã«æé©ãªãã©ã³ã¹ãå®çŸã§ããã§ãããããããããã¯ãããããã®ãã¬ãŒã ã¯ãŒã¯ã®äºææ§ãããã®ç®¡çã³ã¹ããèããå¿ èŠããããŸãã
6.4 Rustéçºã®çŸç¶ãšå±æ
çŸåšãRustã¯é«ãããã©ãŒãã³ã¹ãšã¡ã¢ãªå®å šæ§ãæã€èšèªãšããŠãã·ã¹ãã ã¬ãã«ã®ããã°ã©ãã³ã°ããWebéçºãŸã§å¹ åºã䜿çšãããŠããŸãããããŠã倧æäŒæ¥ãRustãæ¡çšãå§ããŠããããã®éèŠã¯å¢å ãç¶ããŠããŸãã
ãã®ãããªç¶æ³ã®äžã§ãRustã®ãã¬ãŒã ã¯ãŒã¯ãããŒã«ã®éçºã¯çŽ æ©ãé²å±ããŠããããã®å€æ§æ§ã¯æ¥ã å¢ããŠããŸãããŸããRustã®ã³ãã¥ããã£ãŒã¯æŽ»çºã§éæŸçã§ãããæ°ããªãã¬ãŒã ã¯ãŒã¯ãããŒã«ã®éçºãæ å ±å ±æã掻çºã«è¡ãããŠããŸãã
ããããã®Rustã®éçºç°å¢ã¯ããã質ã®é«ããã¬ãŒã ã¯ãŒã¯ãããŒã«ã®åºçŸã«ãããéçºè ãããè¯ãã³ãŒããçã¿åºããããç°å¢ã«ãªãã§ãããããŸããäŒæ¥ã®æ¡çšå¢å ã«äŒŽããRustã®å©çšãããäžè¬åããŠããããšãäºæ³ãããŸãã