d Abstract) Noga Alon ∗ Jeff Edmonds † Michael Luby ‡ An (n, c, , r)-erasure code consists of an encoding algorithm and a decoding algorithm with the following properties. The encoding algorithm produces a set of -bit packets of total length cn from an n-bit message. The decoding algorithm is able to recover the message from any set of packets whose total length is r, i.e., from any set of r/ packets. We describe erasure codes where both the encoding and decoding algorithms run in linear time and where r is only slightly larger than n.