4 releases (2 breaking)
0.3.0 | Jul 10, 2021 |
---|---|
0.2.0 | Apr 25, 2019 |
0.1.1 | Feb 27, 2019 |
0.1.0 | Feb 25, 2019 |
#86 in #tor
597 downloads per month
Used in 6 crates
(2 directly)
10KB
137 lines
tor-stream
Provides an interface for proxying network streams over the Tor network.
See the documentation for more.
lib.rs
:
Provides an interface for proxying network streams over the Tor network.
See setup for information on creating a local Tor SOCKS5 proxy.
Usage
If your Tor proxy is running on the default address 127.0.0.1:9050
,
you can use TorStream::connect()
. If that is not the case,
you can specify your address in a call to TorStream::connect_with_address()
.
use tor_stream::TorStream;
use std::io::prelude::*;
let mut stream = TorStream::connect("www.example.com:80").expect("Failed to connect");
// The stream can be used like a normal TCP stream
stream.write_all(b"GET / HTTP/1.1\r\nConnection: Close\r\nHost: www.example.com\r\n\r\n").expect("Failed to send request");
// If you want the raw stream, call `into_inner()`
let mut stream = stream.into_inner();
let mut buf = String::new();
stream.read_to_string(&mut buf).expect("Failed to read response");
println!("Server response:\n{}", buf);
Credits
This crate is mostly a wrapper about Steven Fackler's socks
crate.
Dependencies
~130–375KB