I read up on Arti when I saw you had mentioned it before. Definitely a neat project. As much as I am a fan of Rust, I just don't see much demand for it supplant C where it's already been entrenched. For new software, or re-writes of other languages that aren't as practical as C it makes lots of sense.
This will make me as popular as
a whore in church to mention here, but credit where due: The big project to rewrite Tor as Arti was
funded by Zcash grants for
multiple years. I have mixed feelings about this; I’m not such a fan of rusting all the world’s code, and I kinda dislike Rust, and I know the C daemon like an old friend... sigh.
Besides the whole “memory-safe language” thing, some aspects of Arti’s design are far superior to the C daemon. That’s a design issue, not a language issue; while rewriting from scratch, the Tor lead devs did their wishlist of “how we should’ve done it”. (Imagine what Bitcoin Core would do, if they
could throw the whole thing out instead of slooooowly refactoring out
libbitcoinkernel (
a good explanation), etc.) In particular, Arti is designed from the ground up to work with other programs—either via an RPC protocol much better than the old control socket, or embedding as a crate/library.
Embedding and bundling in other programs has been a major pain point. Tor always should have been deployable a library—and also, the Tor control port protocol has always been awful. So...
Switching to Arti would not require Feather to rewrite their own project in Rust! On the
integration page I linked, both FFI and RPC are noted.
The C daemon will someday be phased out. I haven’t yet tried Arti, but I know I need to dig into it sooner rather than later.
I run a Tor daemon with my own local patches; their repo and their build/test processes are relatively easy to work with, even just for personal use.
Just curious; what exactly are you patching, why, and how?
Occasionally, I’ve fixed bugs.
For instance, I discovered and locally fixed
#40739 (
clearnet) a few years before the Tor Project’s patch broke my branch with a merge conflict, and I had to revert my patch. And now, I didn’t help the community, and I didn’t get credit for it, and no one will ever even believe me. (No, I’ve never found a 0day in Tor!)
Other stuff I do is sensitive; I would prefer not to discuss it publicly.
But most importantly:
I am heavily dependent on Tor. Some people toss around the terms “free software” and “open source” as buzzwords. I actually use the source. If my life is so deeply entwined with a piece of software as it is with Tor, I want to know that code intimately. The best way to keep in touch with the code is to build from git, spend some time poking around in the code, and customize little things to my satisfaction.
P.S., DireWolfM14, this thread was actually spawned by my alt’s needs, which delayed reply to you until OP’s aneurysm/thread lock cut it off—for now. XMR got a plug in my artfully slipped-in fungibility manifesto, though the manner thereof probably won’t make XMR people much happier than BTC/AMLed-NFT maximalists.
Are you guys not using the Tor repository to keep your Tor install up to date?
I'm using my Linux distro's default packages.
If that’s Debian or Debian-based, the Tor Project recommends their own
.deb instead. That’s why they make it. I don’t know how it is now, but in past years the Debian tor package was poorly-maintained.