Join us

The development of "Arti," a Rust-based Tor implementation funded by Zcash, aims to enhance security and efficiency by addressing the limitations of the current C-based Tor.
Arti is a new implementation of Tor written in Rust, aimed at addressing the limitations of the current C-based Tor, which is error-prone and complex.
The existing C code for Tor is difficult to manage due to its complexity and lack of modularity.
The decision to fully rewrite Tor in Rust, rather than incrementally replacing C code, was made because the existing C modules are not well-separated.
The development of Arti is structured in phases, with goals to achieve a production-quality client implementation.
Arti can currently connect to the Tor network and act as a SOCKS proxy, but it is not yet suitable for real privacy needs.
The Tor Project is stirring the pot with "Arti," a new iteration of Tor built using Rust. This initiative, supported by Zcash Open Major Grants, aims to address the headaches of the old C-based Tor. If you've ever tangled with that version, you know it's a bit of a mess with its error-prone and convoluted code. Rust, known for its safety and efficiency, is expected to reduce bugs and improve security. The hope is that Rust's expressiveness and strong guarantees will speed up development, making life a tad easier for everyone involved.
The current C code isn't exactly easy. It's riddled with issues, especially when it comes to multithreaded cryptography. Thread-safety problems can creep in, leading to those annoying bugs and security vulnerabilities. But Rust's type system acts like a safety net, helping to avoid these pitfalls and making it simpler to write safe concurrent code. This means Arti's circuit cryptography can be multicore-ready right from the start, without too much extra hassle.
So, why a complete rewrite in Rust? The C codebase is so tangled that replacing it piece by piece just wouldn't cut it. A full overhaul allows for a more modular and embeddable design, addressing design issues that were a nightmare in C. Arti aims to be a flexible, cleaner version, with the potential to be embedded into other applications. Right now, Arti can connect to the Tor network, get a view of the Tor directory, and make anonymized connections. But don't get too excited yet - it's not ready for real privacy needs, missing some key security features.
The roadmap for Arti is laid out in phases, focusing on improving security, enhancing embedding features, and eventually reaching a production-quality client implementation. Down the line, they're planning to add anti-censorship features and support for onion services. Meanwhile, the old C version of Tor isn't going anywhere just yet. It'll still be supported and developed, but the spotlight is gradually shifting to Rust. The endgame is to have the Rust version fully take over once it's up to snuff. And hey, if you're a developer with a knack for Rust or Tor, they're welcoming contributions to help push Arti forward.
Responsible for the development and transition of Tor from a C-based implementation to Rust with the creation of Arti.
Provided financial support for the development of Arti, enabling the project to progress and succeed.
A new implementation of Tor written in Rust, designed to improve safety, efficiency, and security over the existing C-based Tor.
Significant time devoted to Arti development due to funding from Zcash Open Major Grants.
Goal for Arti 0.0.1, a minimal secure client.
Goal for Arti 0.1.0, suitable for experimental embedding.
Goal for Arti 1.0.0, the initial stable release.
Goal for Arti 1.1.0, focusing on anti-censorship features.
Goal for Arti ~1.2.0, to support onion services.
Goal for Arti ~2.0.0, achieving feature parity with C Tor as a client.
Subscribe to our weekly newsletter VarBear to receive similar updates for free!
Join other developers and claim your FAUN.dev() account now!
FAUN.dev() is a developer-first platform built with a simple goal: help engineers stay sharp without wasting their time.

FAUN.dev()
@varbear