The developers of the anonymous network TOR introduced the release of the project Arti 0.0.3 , developing a Tor-client, written in RUST. The project has the status of experimental development, lagging behind the functionality from the main client TOR in the SI language and is not yet ready to fully replace it. In March, release is expected to issue 0.1.0, which is positioned as the first beta of the project, and in the fall of release 1.0 with stabilization of API, CLI and settings, which will be suitable for primary use by conventional users. In a more distant future, when the code on RUST reaches a level capable of completely replacing the SI version, the developers intend to give Arti the status of the main implementation of TOR and stop supporting the implementation on C.
In contrast to the implementation of the SI, which was first designed as SOCKS-proxy, and already adjusted for other needs, Arti is initially developing in the form of a modular embedded library that various applications can use. In addition, the development of a new project takes into account the entire last experience of developing TOR, which will avoid well-known architectural problems, make the project more modular and efficient. Code distributed under licenses Apache 2.0 and Mit.
As the reasons for rewriting TOR on Rust is a desire to achieve a higher level of code security due to the use of a language that provides safe memory. According to the evaluation of TOR developers, at least half of all tracked vulnerabilities will be excluded in implementation on Rust if the “Unsafe” blocks are not used in the code. Rust will also provide an opportunity to achieve a higher development speed than when using SI, due to the expressiveness of the language and strict warranties that allow you to spend time on double checks and writing an excess code.
From the changes in the release of 0.0.3, there is a complete revision of the configuration system and the associated API. The change made it possible to change the settings from Rust on the fly while the TOR client is running. Also added a new system for proactive circuits (Premptive Circuit Construction), which takes into account previously used ports for the proactive creation of chains that are likely to be needed in the future.