rustã§telnetãã£ãããæ¸ãã
ã½ã±ããããã°ã©ãã³ã°ã®ç·´ç¿ã§ããããã¢ã¬ãrustã§æ¸ãã¦ã¿ãã
https://github.com/gifnksm/telnet-chat
ã¯ã©ã¤ã¢ã³ãããã°ã©ã æ¸ãã®ããã«ãã£ãã®ã§ãtelnet
ã使ãä»æ§ã«ããã \
ããå§ã¾ãã³ãã³ããæã¤ãã¨ã§ãåå è
ä¸è¦§ãåºãããã§ããã
ç·´ç¿ã®ãããéä¿¡é¢ä¿ã®å¦çã¯ãã¹ã¦æ¨æºã©ã¤ãã©ãªã®ãã®ãå©ç¨ãã¦ããã
éã«è¨è¨ãã¦éã«æ¸ããã®ã§ç¡é§ãªã¹ã¬ããçæã¨ããã£ã±ããã¦ãããã©ããã¯ãææ¬ã
ããã¡ãã£ã¨æ¹åããããã©é£ä¼ãçµããã®ã§ã²ã¨ã¾ãæ稿ãã次第ã§ãã
- Rust ã ããã¨ãã£ã¦ã並åããã°ã©ãã³ã°ãè¶ ãæ軽ã«æ¸ããããã§ã¯ãªããç°å¸¸ç³»å¦çããã¡ãã¨ä½ãè¾¼ããããã«ã¯ã¹ã¬ããéã®ããã¨ããªã©ã¯ãã¡ãã¨ããè¨è¨ãå¿ è¦ã
- ã¨ã¯ããCã§æ¸ãããã¯æç¶æ¥½ã
enum
ã¨ãã¿ã¼ã³ãããæé«ã¨ããæããå¼·ããããåå®ç¾©ã ãã§ãããã³ã«ãå®ç¾©ã§ããã®ã¯åããããããC APIãå©ãæºåãªã©ã®ç´°ããå¦çã«æèãã¨ãããããæ¬è³ªçãªè«çã«éä¸ã§ããã¨ããã®ããã¯ãè¯ããmove semantics ã borrow checker ã®ãããã§ã¹ã¬ããéã®ãã¼ã¿ã®æä»ã«ã¤ãã¦ããã»ã©æ°ãé£ããªãã¦è¯ãã®ã大ããã - ä¸çªããã£ãã®ã¯ã
socket
å ¨ç¶é¢ä¿ç¡ãdocopt
ã®ä½¿ãæ¹ãlet arg: Args = Args::docopt()...
ã®: Args
ãæ¸ãå¿ããã°ã£ããã«ãdecode
å¦çã§å®è¡æã¨ã©ã¼ã«ãªã£ã¦ãããã©ããåæå®çç¥ããã¨args
ã®åã()
ã«ãªãã£ã½ããè¬ã socket
ã¨ãchannel
ã Rust ã®ã©ã¤ãã©ãªã§æ½è±¡åããã¦ãããããC ã§æ¸ããã¨ãã®ããã«ã©ããªå ´åã«ã©ããªã¨ã©ã¼ãè¿ã£ã¦ããã®ãman
ã§èª¿ã¹ã¤ã¤æ¸ããã¨ããã®ãã§ããªãã¦ã¨ã©ã¼å¦çãã©ãããã°è¯ãã®ã (ãªã«ããªå¯å¦ã®å¤æã¨ã) ãå¤æã§ããªãå±é¢ããã£ããã¯ãã¹ãã©ãããã©ã¼ã 対å¿ã®ããã«é£ããã®ãããããªããã©ãããå°ãããã¥ã¡ã³ãã«è©³ç´°ãªã¨ã©ã¼åå ã¨ããããã¨è¯ãã¨æã£ãã
ã¡ããã¨ãããµã¼ãã¢ããªã±ã¼ã·ã§ã³ãæ¸ããªãã°ãmio ã¨ã使ãã®ãããããã