Tor 项目完全使用 Rust 重写的 Tor 协议实现:Arti

来源: OSCHINA
编辑: 局长
2021-07-15

Tor 宣布了完全使用 Rust 重写 Tor 协议实现的项目,被称为 Arti

据介绍,其开发团队已经在这个项目上工作了一年多的时间,由于得到了 Zcash Open Major Grants (ZOMG) 的资金支持,他们可以把 Arti 项目放在优先级列表中,并投入更多的时间。

Tor 是一组可以在互联网上提供匿名性、隐私性和抗审查性的协议,同时也是一个用 C 语言编写的程序,提供了协议的客户端和服务器端实现。

开发者表示,Tor 是用 C 语言编写的。尽管 C 是一门古老且无处不在的语言,但众所周知,它使用起来很容易出错,而且 C 缺乏高级功能,使得许多编程任务比使用更现代的语言更复杂。对于他们来说,这些问题意味着用 C 编程是一个缓慢而艰苦的过程。他们编写的所有代码都比计划的要多很多,而且还需要仔细检查以确保它不会落入 C 的“巨大陷阱”。这严重拖延了开发进度,并增加添加新功能所需的成本。

在这样的背景下,Rust 似乎是摆脱 C 束缚的方法。它是一门现代的高级语言,并且比 C 更具表现力。更重要的是,它具有一些真正创新的功能,可以让该语言在编译时强制执行某些安全属性。这对于 Tor 开发者在编程和调试方面带来了许多便利之处,此外对于项目本身而言,也增强了安全性和可靠性,比如更容易实现多线程加密。

开发者还指出,自 2016 年以来,他们一直在跟踪在 Tor 中发现的所有安全漏洞,结果证明其中至少有一半错误不会在 Rust 代码中出现。

开发者原本的计划是慢慢地用 Rust 替换 Tor 的 C 代码,但发现这样行不通,原因是 Tor 项目的 C 模块过于耦合,所以他们很无法逐渐地使用 Rust 重写每一个 C 模块。因此他们决定重写,这样就可以保持现有的 C 代码稳定性,并且只对其进行最少的更改,同时构建 Rust 代码的 work base 以作为未来开发的基础。

展开阅读全文
6 收藏
分享
加载中
精彩评论
一直覺得Rust能替代的是部分C生態,而非C++。
2021-07-15 09:30
4
举报
不用模板怎麼搞泛型啊,而且現在大部分新特性就是為了寫庫用的,沒那些特性有些庫還真不好寫。
2021-07-15 14:22
3
举报
最新评论 (16)
剥开洋葱皮, 深度揭密Tor网络
https://www.ctocio.com/ccnews/16089.html
2021-07-22 15:03
0
回复
举报
从没用过
2021-07-17 18:38
0
回复
举报
为什么我看不见你们的评论?
2021-07-16 07:49
0
回复
举报
什么东西
2021-07-15 14:08
0
回复
举报
话说,你这个新闻下,放的是 tor 的地址,而不是 arti 是啥意思?
2021-07-15 13:20
0
回复
举报
人工智能(障)生成的吧,结果生成错了
2021-07-15 15:38
0
回复
举报
这浏览器很出名,基本上追踪不到
2021-07-15 12:50
0
回复
举报
可以过墙?
2021-07-15 11:35
0
回复
举报
其实把c++好好改造改造,不用模板之类的玩意;
把库好好升级,框架弄好;就行了
2021-07-15 11:14
0
回复
举报
不用模板怎麼搞泛型啊,而且現在大部分新特性就是為了寫庫用的,沒那些特性有些庫還真不好寫。
2021-07-15 14:22
3
回复
举报
模板是C++的本质之一,也是最具表现力的一面,用c++而扔掉template,是郑人买履
2021-07-22 08:18
0
回复
举报
一直覺得Rust能替代的是部分C生態,而非C++。
2021-07-15 09:30
4
回复
举报
那是因为 Rust 现在还远远没有“长大”。
2021-07-15 13:18
0
回复
举报
补C定,那杂乱的生态圈没人可以替代的,只能被抛弃。已经成了过度兼容的代表了。本来,Rust完成--“C缺乏高级功能”的任务就很好了,可惜,生添硬造的把两种理念掺和到一起,感觉要成为补C定第二了。
2021-07-15 17:03
0
回复
举报
一样可以,Chromium和Fuchsia都在用Rust。
2021-07-21 19:32
0
回复
举报
也许也会挤占C++的生存空间,使用难度上和C++的复杂度比Rust的真的不算什么,而且表达能力不比C++差,使用上也相对C++更安全
2021-07-22 13:53
0
回复
举报
更多评论
16 评论
6 收藏
分享
返回顶部
顶部