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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//! SOCKS5 support for Rama.
//!
//! # Rama
//!
//! Crate used by the end-user `rama` crate and `rama` crate authors alike.
//!
//! Learn more about `rama`:
//!
//! - Github: <https://github.com/plabayo/rama>
//! - Book: <https://ramaproxy.org/book/>
//!
//! # Socks5
//!
//! - If you need a socks5 server your best starting point is probably the [`Socks5Acceptor`];
//! - The [`Socks5Client`] is a low level connector that can be used to build client-side socks5-ready connectors;
//!
//! Feel free to use the [`proto`] module directly if you wish to implement your own
//! socks5 client/server logic using these protocol building blocks.
//!
//! # Socks4
//!
//! This library explicitly offers no support for the pre-RFC socks4.
//! Reasons being that socks4 is only used in what is now considered legacy software,
//! and that it offers certain security risks for the little it offers.
//!
//! All proxy vendors have by now also moved to socks5.
//!
//! That said, in case you have a particular need for socks4,
//! know that we do have a rough idea how we could offer backwards-compatible
//! support for socks4 (and socks4a), backed by the fact
//! that socks5 is a superset of socks4.
//!
//! Open a feature request at <https://github.com/plabayo/rama/issues>
//! in case you want this support with sufficient motivation on why you
//! have a strong need for this feature. Ideally this request
//! also comes with the ability to contribute it yourself,
//! be it with free and constructive mentorship from our end.
pub use Socks5Client;
pub use ;
pub use Socks5Acceptor;
pub use Socks5Auth;