Written by the inventors, Raptor Codes, provides a complete introduction to the theory, design and practical implementation of a class of codes that that provide a lot of practical value to a large variety of data communication applications. They find applications in all types of data transmission, including those using the TCP and UDP protocols; multipoint-to-point; point-to-multipoint and multipoint-to-multipoint. The codes are so efficient and practical that two classes of them (R10 and RaptorQ) have been adopted widely by a number of standards bodies and are used in a variety of standards. Different algorithms are introduced for encoding and decoding various versions of these codes, including their systematic versions. Moreover, a hybrid decoding algorithm called "inactivation decoding" is introduced which is an integral part of all modern implementations of Raptor codes. There are publicly available specifications that describe exactly how to implement these R10 and RQ codes. However, the standards specifications provide no insight into the rationale for the design choices made. One of the primary purposes of Raptor Codes is to provide this design rationale. Raptor Codes is essential reading for all researchers, engineers and computer scientists designing and implementing data transmission applications. Furthermore, it provides results of extensive simulations of R10 and RQ codes to show the behavior of these codes in many different scenarios.