A stream is a pipeline for events that returns a value asynchronously to the invoker. Streams are more useful for items that require the Iterator trait, while Futures are more apt for Result values. When an error occurs throughout a stream, the error will not halt the stream, and polling on the stream will still return other results until the None value has been returned.
Streams and Channels can be a bit confusing for some. Streams are used for continuous, buffered data, and Channels are more suited for completed messages between endpoints.