之前用c写过一版socks5代理(socks5代理写完了),自己一直在用,访问Google什么的感觉都挺流畅,自己也挺满意的。
不过因为这些天在学rust,一直想找个项目练手,所以决定用rust重新实现一版。
刚刚写完,测试过后,感觉非常好。
写这个项目本质上是为了练习rust,因为rust语言非常复杂,光看文档不能很好的体会它的各种独特的概念,所以必须写点东西,来加深对其了解。
刚开始写时,我觉得过程中肯定会遇到各种困难,各种 ownership 和 lifetime 问题,但写完回头一看,rust也根本没我开始预想的那么复杂,估计是被以前的学习过程吓怕了。
记得之前写过一个rust小工具(用rust写了个小程序),那叫一个费劲,花了好长时间才把那个项目写完,也正式写完那个项目,我决定暂时放弃rust学习,太复杂了。
这次放弃已经是我第二次放弃rust。
不过因为后来遇到好多优秀项目都是用rust写的,又让我对rust有了兴趣,不过有前两次的经验,这次心里预期并没有那么高了,准备把rust当成业余语言使用。
期间又仔细学习了它的各种概念,然后又用它刷leetcode,总算对rust有点信心。
直到写完这个项目,我觉得我终度过了rust这个陡峭的学习过程,终于可以随心所欲的写代码了。
不过,我现在还是觉得,rust不适合大部分团队,只有少部分精英团队才有可能用好用对。
对我来说,它在我这里的定位还是一门业余语言,学习并使用它全凭爱好。
说了这么多,还是说下这个项目吧。
写这个项目的过程,又让我再次加深了对tcp/epoll的理解,前两天也写了好几篇关于它们的文章,也算是收获颇丰。
下面是那些文章:
我现在越来越觉得,底层学习太重要了,只要你掌握了底层知识,那不管你用什么语言,用什么框架,你都能抓住其精髓,使用起来得心应手。
大道至简,返璞归真。
项目我已经开源到Github,地址如下:
https://github.com/wangyuntao/socks5-rs
目前项目文档还比较少,有兴趣的同学自己读下代码吧,逻辑很简单。
个人对这个项目还是比较满意的。
完。
本文分享自 Linux内核及JVM底层相关技术研究 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!