Expand description
Implements Tor’s “stream“s from a client perspective
A stream is an anonymized conversation; multiple streams can be multiplexed over a single circuit.
To create a stream, use crate::client::ClientTunnel::begin_stream.
§Limitations
There is no fairness, rate-limiting, or flow control.
Modules§
- ctrl 🔒
- Common types for
StreamCtrltraits and objects, used to provide a shareable handle for controlling a string. - data 🔒
- Declare DataStream, a type that wraps RawCellStream so as to be useful for byte-oriented communication.
- params 🔒
- Declares a type to configure new streams.
- resolve 🔒
- Declare a type for streams that do hostname lookups
Structs§
- Client
Data Stream Ctrl - An object used to control and monitor a data stream.
- Data
Reader - The read half of a
DataStream, implementingfutures::io::AsyncRead. - Data
Stream - An anonymized stream over the Tor network.
- Data
Writer - The write half of a
DataStream, implementingfutures::io::AsyncWrite. - Incoming
Stream - A pending request from the other end of the circuit for us to open a new stream.
- Incoming
Stream Request Context - Information about a stream request, as passed to an
IncomingStreamRequestFilter. - Resolve
Stream - A ResolveStream represents a pending DNS request made with a RESOLVE cell.
- Stream
Parameters - A set of preferences used to declare how a new stream should be opened.
- Stream
Receiver - The read part of a stream on a particular circuit.
Enums§
- Incoming
Stream Request - The allowed incoming messages on an
IncomingStream. - Incoming
Stream Request Disposition - What action to take with an incoming stream request.
- IpVersion
Preference - A preference for IPv4 vs IPv6 addresses; usable as a nicer frontend for BeginFlags.
Traits§
- Client
Stream Ctrl - An object that lets the owner “control” a client stream.
- Incoming
Stream Request Filter - A callback that can check whether a given stream request is acceptable immediately on its receipt.