Stream

In computing, the term stream is used in a number of ways, in all cases referring to a sequence of data elements made available over time. A stream can be thought of as a conveyor belt that allows items to be processed one at a time rather than in large batches.

•      On Unix and related systems based on the C language, a stream is a source or sink of data, usually individual bytes 

or characters. Streams are an abstraction used when reading or writing files, or communicating over network sockets. The standard streams are three streams made available to all programs.

•      Pipelines can also be understood as streams as well as any unlimited (non-packaged) information that is inserted by a device.

•      In the Scheme language and some others, a stream is a lazily evaluated or delayed sequence of data elements. A stream can be used similarly to a list, but later elements are only calculated when needed. Streams can therefore represent infinite sequences and series. See Stream (type theory) and data stream mining.

•      In the Smalltalk standard library and in other programming languages as well, a stream is an external iterator. As in Scheme, streams can represent finite or infinite sequences.

•      Stream processing — in parallel processing, especially in graphic processing, the term stream is applied to hardware as well as software. There it defines the quasi-continuous flow of data that is processed in a dataflow programming language as soon as the program state meets the starting condition of the stream.

•      Filesystems can store multiple named independent streams against a single filename. There is one main stream that makes up the normal file data. Additional streams can be used to store icons, summary and indexing information, zone information (i.e., where the file was downloaded from) etc.