tor/doc/HACKING
Micah Elizabeth Scott 95bcd17705 Include a basic Rust wrapper for Equi-X and HashX
The idea behind this is that we may want to start exporting more pieces
of c-tor as Rust crates so that Arti can perform cross compatibility and
comparison testing using Rust tooling.

This turns the 'tor' repo into a Cargo workspace, and adds one crate to
start with: "tor-c-equix", rooted in src/ext/equix. This actually
includes both Equi-X itself and HashX, since there's less overall
duplication if we package these together instead of packaging HashX
separately.

This patch adds a basic safe Rust interface, but doesn't expose any
additional internals for testing purposes.

No changes to the C code here or the normal Tor build system.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-07-26 12:27:15 -07:00
..
android Syntax highlighting in the docs 2020-07-13 11:45:14 +02:00
tracing Fix typos. 2020-11-12 11:44:09 -05:00
CircuitPaddingDevelopment.md rust: Remove Rust support from tree 2021-10-06 15:12:04 -04:00
CircuitPaddingQuickStart.md Change git.tpo URLs to gitlab.tpo 2023-06-19 08:09:39 -04:00
CodingStandards.md Rewrite documentation on primary branch usage for Tor.git. 2021-05-25 00:20:46 +00:00
Fuzzing.md Revise trac.torproject.org urls to refer to gitlab replacements. 2020-08-14 09:21:28 -04:00
GettingStarted.md Change git.tpo URLs to gitlab.tpo 2023-06-19 08:09:39 -04:00
HelpfulTools.md Rewrite documentation on primary branch usage for Tor.git. 2021-05-25 00:20:46 +00:00
HowToReview.md doc: Replace "underline" with "## Section name". 2020-03-26 16:19:42 +01:00
Maintaining.md Rewrite documentation on primary branch usage for Tor.git. 2021-05-25 00:20:46 +00:00
Module.md Syntax highlighting in the docs 2020-07-13 11:45:14 +02:00
README.1st.md Change git.tpo URLs to gitlab.tpo 2023-06-19 08:09:39 -04:00
ReleaseSeriesLifecycle.md Rewrite documentation on primary branch usage for Tor.git. 2021-05-25 00:20:46 +00:00
ReleasingTor.md doc: Add tpo website update to ReleasingTor.md 2023-01-19 08:43:59 -05:00
ReleasingTor.md.old doc: Brand new ReleasingTor.md 2021-11-02 11:56:53 -04:00
Rust.md Include a basic Rust wrapper for Equi-X and HashX 2023-07-26 12:27:15 -07:00
WritingTests.md Merge branch 'maint-0.4.7' 2023-06-19 08:09:45 -04:00

README.1st

In this directory

This directory has helpful information about what you need to know to hack on Tor!

First, read GettingStarted.md to learn how to get a start in Tor development.

If you've decided to write a patch, CodingStandards.md will give you a bunch of information about how we structure our code.

It's important to get the code right! Reading WritingTests.md will tell you how to write and run tests in the Tor codebase.

There are a bunch of other programs we use to help maintain and develop the codebase: HelpfulTools.md can tell you how to use them with Tor.

If it's your job to put out Tor releases, see ReleasingTor.md so that you don't miss any steps!

Additional Information

For full information on how Tor is supposed to work, look at the files in Tor specification.

For an explanation of how to change Tor's design to work differently, look at the Tor proposal process.

For the latest version of the code, get a copy of git, and

$ git clone https://gitlab.torproject.org/tpo/core/tor.git

For a copy of Tor's original design paper, see here. Note that Tor has changed in many ways since 2004.

For a large collection of security papers, many of which are related to Tor, see Anonbib's Selected Papers in Anonymity.

Stay in touch

We talk about Tor on the tor-talk mailing list. Design proposals and discussion belong on the tor-dev mailing list. We hang around on irc.oftc.net, with general discussion happening on #tor and development happening on #tor-dev.

The other files in this HACKING directory may also be useful as you get started working with Tor.

Happy hacking!