1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! # Tor Client Lib
//! This is a client library for [Tor](https://www.torproject.org/), which allows you to interact programmatically with a Tor server, using its [API](https://github.com/torproject/torspec/blob/main/control-spec.txt).
//! ## Installation
//! To add it to your existing project:
//! ```bash
//! cargo add tor_client_lib
//! ```
//! ## Commands Supported
//! This library currently supports a small (but useful) subset of the full API, namely:
//! - AUTHENTICATE
//! - AUTHCHALLENGE
//! - GETINFO
//! - PROTOCOLINFO
//! - ADD_ONION
//! - DEL_ONION
//!
//! If you'd like to see more functions supported, please either submit an issue request or a PR.
//!
//! ## Example Code
//! ```no_run
//! # use tokio;
//! use tor_client_lib::{
//! control_connection::TorControlConnection,
//! error::TorError,
//! auth::TorAuthentication
//! };
//!
//! # #[tokio::main]
//! # async fn main() -> Result<(), TorError> {
//! // Connect to the Tor service running locally
//! let mut control_connection = TorControlConnection::connect("127.0.0.1:9051").await?;
//!
//! // Authenticate to the Tor server
//! control_connection.authenticate(&TorAuthentication::SafeCookie(None)).await?;
//!
//! // Call the "GETINFO" command to get the Tor version number
//! let tor_version = control_connection.get_info("version").await?;
//! # Ok(())
//! # }
//! ```
pub use crateTorAuthentication;
pub use crate;
pub use crateTorError;
pub use crate;