LT-codes are a new class of codes introduced by Luby for the purpose of scalable and fault-tolerant distribution of data over computer networks. In this paper, we introduce Raptor codes, an extension of LT-codes with linear time encoding and decoding. We will exhibit a class of universal Raptor codes: for a given integer and any real , Raptor codes in this class produce a potentially infinite stream of symbols such that any subset of symbols of size is sufficient to recover the original k symbols with high probability. Each output symbol is generated using operations, and the original symbols are recovered from the collected ones with operations.We will also introduce novel techniques for the analysis of the error probability of the decoder for finite length Raptor codes. Moreover, we will introduce and analyze systematic versions of Raptor codes, i.e., versions in which the first output elements of the coding system coincide with the original elements.