And it's already here between us the new version of the Arti 0.2.0 project, which was presented by the developers of the Tor anonymous network recently and in which various improvements have been made, of which most of them are focused on performance improvements.
For those who are unaware of the Arti project, they should know that this is a new proposal by Tor developers in order to offer a Tor client written in Rust.
The project has the status of experimental development, it lags behind the main C Tor client in terms of functionality and is not yet ready to completely replace it.
Unlike the C implementation, which was originally designed as a SOCKS proxy and later adapted for other needs, Arti was initially developed as a plugin library modular that can be used by various applications.
Also, when developing a new project, all past Tor development experience is taken into account, which will avoid known architectural issues and make the project more modular and efficient. The code is distributed under the Apache 2.0 and MIT licenses.
The reasons to rewrite Tor in Rust are the desire of achieve a higher level of code security by using a memory-safe language. According to Tor developers, at least half of all vulnerabilities tracked by the project will be removed in the Rust implementation if the code does not use "insecure" blocks.
Rust will also allow faster development speed than with C, because of the language's expressiveness and strong guarantees that allow you to avoid wasting time on double checks and writing unnecessary code.
Main novelties of Arti 0.2.0
In this new version of the project presented, the most notable changes in version 0.2.0 are related to performance and reliability improvements.
In addition, the improved work on networks that only support IPv6 is highlighted, as well as improvements in reduced memory consumption to store data from directory servers and also the option added to dns_port, with which the user can configure the sending of DNS requests. via Thor.
Another change that stands out is that a new code has been proposed to work with the configuration, in addition to added APIs to define rules to isolate threads and enable sleep mode (suspend work for inactive clients) and that the ability to plug in alternative code implementations to work with directory servers is provided.
From a user point of view, most of the changes in this version of Arti are to improve performance and reliability. We started experimenting on different types of network problems and have improved Arti's behavior on IPv6-only networks and many types of network failures.
We also now use less memory for directory storage (on the order of several megabytes on a running client).
Before the publication of the version 1.0.0, the developers intend to give Arti full support for working as a Tor client which provides access to the Internet (the implementation of support for onion services has been postponed for the future).
It is planned to include it to achieve parity with the main C language implementation in areas such as network performance, load, and CPU reliability, as well as to ensure support for all security-related features.
A v is plannedersion 1.0 for September with API, CLI and configuration stabilization, which will be suitable for initial use by regular users. In the further future, when the Rust code reaches a level where it can completely replace the C version, the developers intend to make Arti the main implementation of Tor and stop maintaining the C implementation.
Finally if you are interested in knowing more about it, you can check the details in the following link