Arti 0.0.1 is released: An embeddable Tor client in Rust

Arti 0.0.1 is released: An embeddable Tor client in Rust

Haven’t you always wanted a Tor client written in Rust? Of course you have! And now that Arti has released version 0.0.1, we have such a client for you to try out.

Our main goal for the 0.0.1 release has been to have no critical missing security features. There are probably still a lot of bugs, though, so you shouldn’t use this in production yet.

Unlike the C Tor implementation, Arti has been designed to be embeddable from day 1: that means that we have an explicit, supported API that you can use to anonymize traffic in your own programs over the Tor network. (Please be aware that this API isn’t stable, and will probably break a lot between now and 1.0.0.)

Here’s what’s new since Arti 0.0.0.

We need your help!

We rely on users and volunteers to find problems in our software and suggest directions for its improvement. Although Arti isn’t yet ready for production use, it should work fine as a SOCKS proxy (if you’re willing to compile from source) and as an embeddable library (if you don’t mind a little API instability).

Assuming you’ve installed Arti (with cargo install arti, or directly from a cloned repository), you can use it to start a simple SOCKS proxy for making connections via Tor with:

$ arti proxy -p 9150

and use more or less as you would use the C Tor implementation!

(It doesn’t support onion services yet.)

For more information, check out the README file. (For now, it assumes that you’re comfortable building Rust programs from the command line). Our CONTRIBUTING file has more information on installing development tools, and on using Arti inside of Tor Browser. (If you want to try that, please be aware that Arti doesn’t support onion services yet.)

When you find bugs, please report them on our bugtracker. You can request an account or report a bug anonymously.

And if this documentation doesn’t make sense, please ask questions! The questions you ask today might help improve the documentation tomorrow.

Next steps

Now that 0.0.1 is released, our next major target is 0.1.0. We’re defining our 0.1.0 milestone as a release targetted for usability and embedding.

Must-have features for 0.1.0 include:
* Preemptive circuit construction for improved performance. (#60)
* Improved API support for configuration and embedding, taking feedback from early adopters. (#55)
* API support for reporting on bootstrap problems and issues. (#96)
* Preliminary performance work. (#173)

For a full (tentative) milestone, see our bugtracker.

We think we can get all this done by some time in March 2022.

Thanks to all contributors!

Thanks to everybody who’s contributed to this release, including Ben Armstead, Daniel Eades, Dimitris Apostolou, Eugene Lomov, Felipe Lema, Jani Monoses, Lennart Kloock, Neel Chauhan, S0AndS0, Smitty, Trinity Pointard, Yuan Lyu, dagger, and rls!

Thanks to Zcash Open Major Grants (ZOMG) for supporting this work.


Amazing news! Can’t wait to start playing around with Arti when I get the chance :slight_smile: