Tor Mobile Dev Guide
  • đź§…Welcome to Onion Mobile Devs!
  • The History of Tor
  • The Tor Protocol
  • Tor ("C Tor") vs Arti: What?!
  • Mobile Concepts
    • Mobile Apps with Tor
    • Possible Ways to Tor Your App
    • Limitations of Mobile Devices
    • Mobile Users in the OnionVerse
  • Tor on Android
    • All The Onions on Android
    • Tor-Android library
    • Pluggable Transports for Android
    • NetCipher with Orbot (Legacy)
    • TorServices
    • Arti Mobile on Android
  • Tor on iOS
    • All The Onions on Apples
    • Tor.Framework for iOS
    • Pluggable Transports for iOS
    • IPtProxyUI
    • OrbotKit
    • TorManager
    • Arti and Onionmasq on iOS
  • Help and Community
    • Community Case Studies
    • Developer Story: Arti Integration Journey
    • Where to get help
Powered by GitBook
On this page
Edit on GitHub

Tor ("C Tor") vs Arti: What?!

The state of the two primary Tor implementations

PreviousThe Tor ProtocolNextMobile Apps with Tor

Last updated 12 months ago

For software projects with recurring bugs, efficiency or security issues there’s a joke making the rounds in the software industry: “Let’s re-write it in !” It’s a fairly new low-level programming language with the declared goal to help developers avoid entire classes of bugs, security issues and other pitfalls. Re-writing software is very time consuming, so it rarely happens, especially when just one more fix will keep a project up and running.

was started in 2001 using the . However a few years ago they set out to actually re-write their project in Rust. That projects codename is and it was in 2022. While Arti is working great, it doesn’t have all features of the original Tor implementation yet. However, they are steadily working on getting there. For example, rough support was added to .

We already have early running on both Android and iOS. The integration we came up with is pretty basic, but so far it seems to work reliable for accessing the Tor network. Maintaining code for both iOS and Android in the same project will hopefully simplify shipping new Arti releases for us, make integrating Tor capabilities into any app simpler. To make it useful for the broader mobile developer community, we’re also investigating whether we can provide easy to use API bindings. We’ve created a on Android to test and illustrate what a minimalistic integration of Arti looks like. It’s as simple as adding a few lines of code.

Support for features like advanced censorship circumvention or onion services is not exactly straight forward on mobile operating systems, because they tend to be way more locked down than traditional computers. Currently, we can successfully test pluggable transports in “managed” mode on old versions of Android. However this technique will likely not work on the latest version of Android and never worked on iOS to begin with. We have shared our findings with the Arti developer team and hope they’ll work on getting us to full Pluggable Transports support, integraing with our existing soon.

IPtProxy Library
Rust
Tor-Project
C programming lanugage
Arti
first released
Pluggable Transports
Arti in the recent 1.1.0 release
test builds of Arti
sample app