ããã«ã¡ã¯ãçŠå²¡éçºæ ç¹ã§Webã¢ããªã±ãŒã·ã§ã³ãšã³ãžãã¢ãããŠãã倧åªãšç³ããŸãã
ä»åã¯ç€Ÿå ã§ãRustã§ãã©ãŠã¶ãäžããäœã£ãŠã¿ãããšããå匷äŒãäŒç»ã»éå¬ããŸããã Rustã®åŠç¿ã ãã§ãªãããã©ãŠã¶ãå éšã§ã©ã®ããã«åããŠããããçè§£ããããšãç®çã«ãå°äººæ°ã®æå¿ã¡ã³ããŒã§æã¡åãã§Rustã§ãã©ãŠã¶ãå®è£ ããŠãããšããããããŒã圢åŒãªå匷äŒã§ãã æ¬èšäºã§ã¯ãå匷äŒãå§ããçç±ãå®éã®å匷äŒã®åœ¢åŒã»å 容ããããŠè¯ãã£ããšãããåçç¹ãªã©ãã玹ä»ããŸãã
ãªãå匷äŒãå§ããã
瀟å ã§ã¯Rustãå©çšããŠãããããã¯ãã¯ãŸã éåžžã«å°ãªãã®ã§ãããã[äœã£ãŠåŠã¶] ãã©ãŠã¶ã®ããã¿ããšããæ¬ãåºçãããéã«ç€Ÿå ã§ãåŠç¿ããŠã¿ãããšãã声ãäžãããŸããã ç§èªèº«ãRustçµéšã¯ãããŸããã§ãããã以åãããã©ãŠã¶ã®å éšæ§é ã«ã€ããŠèå³ããã£ãã®ã§ãRustãåŠã¶é¡æãšããŠãããã©ãŠã¶æ§é ã®åŠç¿ãšããŠããå®è£ ãéããŠçè§£ãæ·±ããã«ã¯æé©ã ãšèããŸããã ããã§ãRustã§åºæ¬çãªãã©ãŠã¶ãäœããªãããRustã®ææ³ããã©ãŠã¶å éšã®åããåŠã¶ããšãããŽãŒã«ãæ²ããŠå匷äŒã宿œããŸããã
å匷äŒã®å 容ã»åœ¢åŒ
åå è ãåã£ããšãããäžåãé€ããŠå šå¡ãRustæªçµéšã§ããïŒãã®çµéšè ã®æ¹ã«ã¯éåžžã«æ§ã ãªç¥èŠãå ±æããŠããã ãããšãŠãè¯ãåºæ¿ã«ãªããŸããïŒã
ãã®ãããå匷äŒã§ã¯æåã®æ°åã¯Rustã®åºç€ãç¿åŸãç®çãšããåŸåãããã©ãŠã¶ã®å éšæ§é ãå®è£ ããªããããå®è·µçã«Rustãšãã©ãŠã¶ã®å éšæ§é ãåŠã¶ããšã«ããŸããã ãŸããåŸè¿°ããããã«å®è£ ãçºè¡šã¯åžæè ã®æã¡åãã§è¡ãããšãšããŠããã®ã§ããããªããšåå è ã®æ¹ãæãæããŠãããŠãå šå¡ãå®è£ ãããã¯çºè¡šãè¡ã£ãŠãããŸããã ãã€ãå šå¡ãç· ãåããŸã§ã«å®è£ ãè³æã®æºåãªã©ã®äœæ¥ãçµããŠããããããã§ãäºå®ããŠããã¹ã±ãžã¥ãŒã«éãã«é²ããããšãã§ããŸãããã¡ã³ããŒã«ææ¬²çã«åå ããŠããããŠæ¬åœã«ãããããã£ãã§ãïŒð
ç®ç
- RustãåŠç¿ãã€ã€ããã©ãŠã¶ã®å éšæ§é ãçè§£ãã
- å®è£ ãéããŠæãåãããªããä»çµã¿ãæ·±ãåŠã¶
- åå è å士ã§ç¥èŠãå ±æããããŒã ã¯ãŒã¯ãéžæãã
é²ãæ¹
éå¬é »åºŠã»æéã»èšèª
åºæ¬ã¯2é±ã«1åã1æéãã€ãªã³ã©ã€ã³ããŒãã£ã³ã°ã§å®æœããŸããã
çŠå²¡éçºæ ç¹ã§ã¯ãšã³ãžãã¢çµç¹ã®è±èªåãæšãé²ããããŠããããšããããä»åã®å匷äŒãå ¬çšèªã¯è±èªãšããããšã«ããŸããã
圹å²åæ
ååã®Ruståºç€åã¯ãéå¶ã§ããç§ãæºåã»è§£èª¬ãè¡ãã€ã€å®æœããŸããã
åŸåã®ãã©ãŠã¶å®è£ ã«ã€ããŠã¯ãäºåã«ååã«ã€ããŠæ¬ã®ç¯å²ãå®ãã以äžã®ãããªåœ¹å²åæ ã§å 容ã®è§£èª¬ãšå®è£ ãæã¡åãã§è¡ããŸããã
å®è£ æ åœ: ååã®ã»ãã·ã§ã³ç¯å²ã«å¯Ÿå¿ããå®è£ ãå人 or ãã¢ã§é²ããPRãäœæãæ¬¡åå匷äŒã§è§£èª¬ãã¬ãã¥ãŒãè¡ãã
çºè¡šæ åœ: 次ã®ç« ã®å 容ãç¹ã«ãã©ãŠã¶ã®ä»æ§ã«ã€ããŠäºåã«è³æããŸãšããåœæ¥ã®å匷äŒã§å ±æã»ãã¬ãŒã³ããã
æ§æ
æ¯å以äžã®2ããŒãã«åããŠé²è¡ããŸããã
1. ããã°ã©ãã³ã°ã»ãã·ã§ã³ (çŽ30å)
äºåã«äœæãããPRãã¿ããªã§ã³ãŒãã¬ãã¥ãŒããçåç¹ãæ¹åç¹ããã£ã¹ã«ãã·ã§ã³ããŸããã ãã®éã«å®è£ ã®æå³ãå©çšããRustã®ææ³ãªã©ãçºè¡šæ åœè ã解説ããŸããã
2. ãªãŒãã£ã³ã°ã»ãã·ã§ã³ (çŽ30å)
次åãŸã§ã«èªãã»å®è£ ããç¯å²ã確èªãã解説ã¹ã©ã€ããè³æãå ±æããŸããã Rustããã©ãŠã¶ä»æ§ã«é¢ãã質åããåãã質åã«ãã£ãŠã¯åå è ã§äžç·ã«WHATWGïŒWeb Hypertext Application Technology Working GroupïŒã§ä»æ§ã確èªãããªã©ãããæ·±ãçè§£ãç®æããŸããã
å®éã®å匷äŒã§ã®ååã®å 容
Ruståºç€å
å ã»ã©è¿°ã¹ãããã«åå è ã®ã»ãšãã©ãRustæªçµéšã ã£ãããã3åã¯åºç€ããã£ããæŒç¿ããæéãšããŠç¢ºä¿ããŸããã
GoogleãæäŸããŠããRustã®åŠç¿ãµã€ãComprehensive Rust ðŠãäžå¿ã«ãå ¬åŒããã¥ã¡ã³ãïŒThe Rust BookïŒã100 Exercises To Learn Rustãå©çšããŠãRustã®åºç€çãªææ³ãçè§£ããããã®æŒç¿ãè¡ããŸããã
ãªãã¹ãäžæ¹çã«ãªããªããããPlaygroundã§ã³ãŒããå®è¡ããªããCompiler-drivenãªå®è£ ããã£ãŠã¿ãããMiroã䜿ã£ãŠæææš©ã®ç§»åãå¯èŠåããããªã©ãåå è ãæãåããããããªå·¥å€«ãããŸããã
ãã©ãŠã¶åºç€å
æ®æ®µäœæ°ãªãå©çšããŠãããã©ãŠã¶ã§ãããããã©ãŠã¶ãšã¯äœãïŒããšèããããšã±ã£ãšçããããªã人ãå€ãã®ã§ã¯ãªãã§ããããã ããããå®è£ ããŠããããšã«ãªããã©ãŠã¶ã®åºç€æ§é ãçè§£ããããã«ãã©ã®ããã«ãã©ãŠã¶ãURLããããŒãžã衚瀺ããã®ãããããŸãã«åŠã³ãŸããã
ããã«ããã©ãŠã¶ã«ã¯éèŠãªã»ãã¥ãªãã£æ©èœãåãã£ãŠããŸããä»åã¯ããããã»ãã¥ãªãã£æ©èœã«ã€ããŠã¯å®è£ ç¯å²å€ã ã£ããã®ã®ããããããšããŠãã®æŠèŠã確èªããŸããã
URLããŒã¹å
ããããæºãæããŠå®è£ ã«çªå ¥ããŸãããã®åã§ã¯Rustã䜿ã£ãŠãã©ãŠã¶ã«ãããURLããŒã¹åŠçãåŠç¿ããŸãããURLããŒã¹ãšã¯ãå ¥åãããURLããã¹ãåãããŒãçªå·ããã¹ãã¯ãšãªãªã©ã®èŠçŽ ã«åè§£ããŠãã©ãŠã¶ãåŠçã§ããããã«ããæ©èœã§ãã ãã¹ãã³ãŒããéããŠæ£ããURLãããŒã¹ã§ããŠããããæ€èšŒãããã©ãŠã¶ãããŒãžã衚瀺ããå ¥ãå£ãäœæããŸããã
HTTPãªã¯ãšã¹ãå
次ã«ãHTTPãããã³ã«ã®ç« ã«ç§»ããŸããããã®ç« ã®ãã¬ãŒã³ããŒãã§ã¯HTTPã®åºæ¬çãªæ§æãšåœ¹å²ãããŒãžã§ã³ã«ããéããæ®åçãªã©ãçºè¡šããŠããããŸããã
å ·äœçãªå®è£ ã§ã¯ãTcpStreamã䜿ããGET / HTTP/1.1ãªã©ã®ãªã¯ãšã¹ãæååãäœæããååå©çšããURLããŒãµããååŸãããã¹ãåãããŒãçªå·ãå©çšããŠãµãŒããžéä¿¡ããŸãã ç¶ããŠãåãåã£ãã¬ã¹ãã³ã¹ãããŒã¹ããããããšããã£ãåè§£ããä»çµã¿ãå®è£ ããŸããã
å®éã« example.com ãžã¢ã¯ã»ã¹ããŠã¬ã¹ãã³ã¹ãè¿ããšãããŸã§ç¢ºèªãããšããã§ãåããŠãããšããå®æãæ¹§ããŠããŸããã
HTMLããŒãµå
å匷äŒã®æçµåã§ã¯ãHTMLã®ããŒãµãå®è£ ããŸããã HTMLã¯ã¿ã°ãèŠçŽ ã屿§ãªã©ã®éå±€æ§é ã§æ§æãããŠããããã©ãŠã¶ã¯HTMLããã¥ã¡ã³ããè§£æããŠDOMããªãŒãšåŒã°ããæšæ§é ã«å€æããŸããå ·äœçã«ã¯ãLexerïŒåå¥è§£æåšïŒããã¿ã°ããããã¹ãããã³ã¡ã³ãããªã©ã®HTMLæååãæå³ã®ããæå°åäœã§ããããŒã¯ã³ã«åå²ãããããåºã«æ§é ãéå±€é¢ä¿ãåæããŸãããã®åŠçãç¶æ é·ç§»ã¢ã«ãŽãªãºã ãšããŠå®è£ ããããšã§ããã©ãŠã¶ãHTMLãæ£ããè§£éããŠç»é¢äžã«è¡šç€ºã§ããããã«ããŸãã
éãã¿ã°ç¡ãã®ãããªäžæ£ãªHTMLã§ããã©ãŠã¶ã¯é 匵ã£ãŠè§£éããŠãããªã©ç¥ããªãã£ãããšãå€ããå匷ã«ãªããŸãããã³ãŒãã®äžèº«ãWeak
ãRc
ãªã©ã®Rustã®ã³ã¢ãªæ©èœã䜿ã£ãŠããŠãRustã®çè§£ãæ·±ããã®ã«ãè¯ããŸãã«ä»ãŸã§ã®é倧æãšãªãåã ã£ããšæããŸãã
ãã®ä»(ä»åŸã®äºå®)
顿ãšããæ¬ã§ã¯ä»åå®è£ ããç¯å²ã®åŸãã以äžã®ããã«ãã©ãŠã¶ã®å®è£ ãé²ããŠãããŸãã
- CSSïŒã¬ã€ã¢ãŠã
- GUI
- JavaScript
ããããªããæ¬å匷äŒã§ã¯Ruståå¿è ãå€ãããã以äžãã©ãŠã¶ã®å®è£ ãé²ãããšé£æåºŠãé«ããªããããããããŸãHTMLããŒã¹ãŸã§ã§åœ¹å²åæ ãäžåšãããããäžæŠãããŸã§ãåºåããšããŸããã ãã ãåå è ã®äžã«ã¯ããããå ã¯èªåã§å®è£ ãé²ããŠãããããšããããæ°ã«æºã¡æº¢ããæ¹ãããŸããïŒ
è¯ãã£ããšãã
- RustÃãã©ãŠã¶æ§é ãåæã«åŠç¿ã§ãã
- åå è ãããRustã®æææš©åšããçè§£ã§ãããããã©ãŠã¶ãã¿ã°ãã©ãè§£éããŠããã®ãåããŠç¥ã£ãããšãã声ãå€ãã£ãã§ãã
- PRããŒã¹åŠç¿ã§å®è£
åãã€ãã
- 誰ããæžããã³ãŒããã¿ããªã§ã¬ãã¥ãŒãããããåŠã³åãã®çžä¹å¹æãçãŸããŸããã
- ã¬ãã¥ãŒã®äžã§è³ªåãããããšããããããèªåãæžããã³ãŒãã説æã§ãããããåçµããã ãã§ãªãæ·±ãçè§£ããããšããæèãçãŸããŸããã
- æ®æ®µæ¥åã§é¢ãããå°ãªãã¡ã³ããŒãšã®äº€æµãã§ãã
- éçºãããã¯ããç°ãªããšãæ®æ®µã®ä»äºã§ã¯äº€æµãã»ãšãã©ãªãããšãå€ãã§ãããä»åã®å匷äŒã§ã¯ãããã£ãã¡ã³ããŒãšã亀æµã®å Žãã§ããŸããã ãŸããè±èªåãé²ãã§ããªãããŒã ã§ä»äºããŠããã¡ã³ããŒã«ãšã£ãŠã¯ãè±èªã§ã³ãŒãã仿§ã«ã€ããŠè°è«ãè¡ãè¯ãæ©äŒãšãªããŸããã
åçç¹
- Rustæªçµéšã¡ã³ããŒã«ã¯é£æåºŠãé«ã
- æææš©ããã€ã³ã¿ãŸããã§ã€ãŸãããããããµããŒããå°ãäžè¶³ããŠããããã«æããŸãã
- Rustã®ææ³ãéé±1æé3åã§çè§£ããã®ã¯çãããŸããããåºæ¬ææ³ïŒå°ããªæŒç¿åé¡ããããå°ãæéããããŠãããšè¯ãã£ããããããŸããã
- æé確ä¿ãé£ãã
- ä»äºã®åéã«å匷äŒãå ¥ãããããã¡ã³ããŒå šå¡ãåå ã§ããæé垯ããªããªããªããæ¯ååå ã§ããªãã¡ã³ããŒãåºãŠããŸããŸããã
- å®è£ ãè³æã®æºåã¯ããªãæéãããããããæ åœã¡ã³ããŒã®è² æ ã«ãªã£ãŠããŸããŸããã
ãŸãšã
Rustãšãã©ãŠã¶ã®ä»çµã¿ãåæã«åŠã¹ãæ©äŒãšããŠããRustã§ç°¡æãã©ãŠã¶ãäœããå匷äŒãéå¬ããŸãããè€æ°åã«åããŠPRã¬ãã¥ãŒã茪èªãç¹°ãè¿ãäžã§ã以äžã®ããšãæ·±ãäœæã§ããã®ã¯å€§ããªææã§ããã
- Rustã®æææš©ã»åçšã»ãšã©ãŒåŠçãªã©ã®èšèªç¹æ§
- HTTPãªã¯ãšã¹ãã»HTMLããŒã¹ãªã©ããã©ãŠã¶ã®åºç€æ§é
äžæ¹ã§ãRustæªçµéšè ãå€å¿ãªã¡ã³ããŒã«ãšã£ãŠã¯ãæºåã»ãã£ããã¢ãããããããŒãã«é«ãé¢ããããŸããã
æã¡åãã§å®è£ ããŠãããšãã圢åŒã¯åå è ã«ã奜è©ã ã£ãããããŸã顿ãªã©ãå€ãã€ã€ãããå®è·µçãªãã€åå è ã«ãšã£ãŠã楜ããå å®¹ãæš¡çŽ¢ããŠãããããšæããŸãã
æåŸã«ãåå è ã®æºåãçºè¡šãåŒãåããŠãã ãã£ãçããã«å¿ããæè¬ããŸããåå è ãªãã§ã¯æç«ããªãå匷äŒã§ããããçããã®ãããã§ç¡äºã«çµããããšãã§ããŸããã
ãããŸã§ãèªã¿ããã ããããããšãããããŸããã
ãããŒãã©ã¯ãŒã çŠå²¡éçºæ ç¹ã§ã¯ãšã³ãžãã¢ãåéããŠããŸãïŒ
çŠå²¡éçºæ ç¹ã®ãµã€ããããã®ã§ãã²ã芧ãã ããã