Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Wiki
  • RustInTor

Last edited by Alexander Færøy Jun 15, 2020
Page history

RustInTor

Rust in Tor

== What & why ==

We are currently investigating integrating Rust as a first-class language in
Tor. We decided upon Rust due to the benefits of memory safety and the ability
to directly integrate Rust and C.

To read more about how and why this started, see our meeting notes from the
2017 meeting in Amsterdam.

https://lists.torproject.org/pipermail/tor-dev/2017-March/012088.html

Current status

In Tor 0.3.3.x, we include a Rust implementation of our "protover" module. It is not enabled by default, but we encourage people to try it.

Starting with Tor 0.3.4.x, we will accept Rust-only features, if they can be safely merged to the network with only some Tor instances supporting them.

We will continue to build out our modularity efforts, and our Rust infrastructure, to make it easier to write modules in rust and replace parts of Tor.

We encourage ALL downstream packagers to try building Tor with Rust enabled, to help identify any compatibility or usability issues as soon as possible.

== Future steps ==

At some point in the future, when we judge that our Rust support is sufficiently mature, we will announce a release and release date after which Rust will be required. We have not picked such a release or date yet.

=== What we are currently working on ===

  1. Understand alignment between Rust and Tor supported platforms. This is a list of which platforms we aim to support, it would be helpful to understand the intersection with Rust. (#22771
  2. Adding automated tooling for code quality tools. (#22156)
  3. Build Tor with Rust for Windows. (#22839)
  4. Investigate the reproducibility of Rust binaries. (#22769)
  5. Implementing existing submodules in Rust as a proof of concept. Two that are currently in progress are consdiff (#24609) and protover (#22840).
  6. Add Rust-enabled build to the Tor CI. (#22636 and #22768)

== Interested in helping out? ==

Please see doc/HACKING/GettingStartedRust.md (rendered) in the tor.git repo.

== Coding Standards ==

Please see doc/HACKING/CodingStandardsRust.md (rendered) in the tor.git repo.

All current, non-closed, Rust in Tor tickets

TicketQuery(keywords~=rust,order=keywords,status=!closed,format=table,col=id

Clone repository
  • AnonOnWikiFavs
  • AppArmorForTBB
  • AutomationInventory
  • BadContent
  • BlockingBittorrent
  • CI
  • CamelCase
  • CrowdfundingHS2015
  • FlashProxyFAQ
  • FlashProxyHowto
  • FlashProxyUsability
  • HTTPSEverywhere
    • SSLObservatorySubmission
  • ImportantGoogleChromeBugs
  • InterMapTxt
  • InterTrac
View All Pages