lib.rs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #![feature(inclusive_range_syntax)]
  2. //! Copyright (c) 2016-2017, The Tor Project, Inc. */
  3. //! See LICENSE for licensing information */
  4. //! Versioning information for different pieces of the Tor protocol.
  5. //!
  6. //! The below description is taken from src/rust/protover.c, which is currently
  7. //! enabled by default. We are in the process of experimenting with Rust in
  8. //! tor, and this protover module is implemented to help achieve this goal.
  9. //!
  10. //! Starting in version 0.2.9.3-alpha, Tor places separate version numbers on
  11. //! each of the different components of its protocol. Relays use these numbers
  12. //! to advertise what versions of the protocols they can support, and clients
  13. //! use them to find what they can ask a given relay to do. Authorities vote
  14. //! on the supported protocol versions for each relay, and also vote on the
  15. //! which protocols you should have to support in order to be on the Tor
  16. //! network. All Tor instances use these required/recommended protocol versions
  17. //! to tell what level of support for recent protocols each relay has, and
  18. //! to decide whether they should be running given their current protocols.
  19. //!
  20. //! The main advantage of these protocol versions numbers over using Tor
  21. //! version numbers is that they allow different implementations of the Tor
  22. //! protocols to develop independently, without having to claim compatibility
  23. //! with specific versions of Tor.
  24. extern crate libc;
  25. extern crate smartlist;
  26. extern crate external;
  27. extern crate tor_allocate;
  28. mod protover;
  29. pub mod ffi;
  30. pub use protover::*;