developers of an anonymous network TOR presented first beta (0.1.0 ) project ARTI , developing a Tor client, written in the language of 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 September it is planned to form a release 1.0 with stabilization of API, CLI and settings that will be suitable for primary use by regular 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.1.0, the basic stabilization of the high-level API and bringing the library to readiness for experimental integration with other projects is noted. The changes mention is mentioned by adding an API to create Torclient instances, including the ability to build and initialize (bootstrap) in the background when first use. In addition, a new high-level API for processing errors has been added.
Before publishing output 1.0.0, developers intend to provide in Arti full support of work as a TOR client, providing access to the Internet (implementation of ONION-services support is postponed for the future). Including, it is planned to achieve parity with the main implementation in the SI language in areas such as network performance, CPU loads and reliability, as well as provide support for all security features.