aboutsummaryrefslogtreecommitdiff
path: root/spec/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'spec/README.md')
-rw-r--r--spec/README.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/README.md b/spec/README.md
new file mode 100644
index 0000000..920486d
--- /dev/null
+++ b/spec/README.md
@@ -0,0 +1,46 @@
+# Tor specifications
+
+These specifications describe how Tor works. They try to present
+Tor's protocols in sufficient detail to allow the reader to implement
+a compatible implementation of Tor without ever having to read the Tor
+source code.
+
+They were once a separate set of text files, but in late 2023 we
+migrated to use [`mdbook`](https://rust-lang.github.io/mdBook/).
+We're in the process of updating these documents to improve their quality.
+
+This is a living document: we are always changing and improving them
+in order to make them easier and more accurate, and to improve the
+quality of the Tor protocols. They are maintained as a set of
+documents in a
+[gitlab repository](https://gitlab.torproject.org/tpo/core/torspec/);
+you can use that repository to see their history.
+
+Additionally, the <a href="./proposals/index.html">proposals</a>
+directory holds our design proposals. These include historical
+documents that have now been merged into the main specifications, and
+new proposals that are still under discussion. Of particular
+interrest are the
+<a href="./proposals/BY_STATUS.html#finished-proposals-implemented-specs-not-merged">`FINISHED`
+Tor proposals</a>: They are the ones that have been implemented, but
+not yet merged into these documents.
+
+## Getting started
+
+There's a lot of material here, and it's not always as well organized
+as we like. We have broken it into a few major sections.
+
+For a table of contents, click on the menu icon to the top-left of
+your browser scene. You should probably start by reading [the core
+tor protocol specification](./tor-spec), which describes how our
+protocol works. After that, you should be able to jump around to
+the topics that interest you most. The introduction of each top-level
+chapter should provide an introduction.
+______________________________________________________________________
+
+[git repository]: https://gitlab.torproject.org/tpo/core/torspec/
+[heading ids]: https://github.com/raphlinus/pulldown-cmark/blob/master/specs/heading_attrs.txt
+[mdbook documentation]: https://rust-lang.github.io/mdBook/format/summary.html
+[`spec/tor-spec/flow-control.md`]: https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/spec/tor-spec/flow-control.md?ref_type=heads
+[`spec` directory]: https://gitlab.torproject.org/tpo/core/torspec/-/tree/main/spec?ref_type=heads
+[`summary.md`]: https://gitlab.torproject.org/tpo/core/torspec/-/raw/main/spec/SUMMARY.md?ref_type=heads