Introduction
The Xceed.Compression namespace defines the CompressedStream class which can be constructed around any kind of .NET Stream to compress data that is written to the stream and decompress data that is read from the stream. It also defines the QuickCompression class which exposes static methods that allow quick and easy compression and decompression of byte arrays.
The following diagram represents the relationship between the CompressedStream and the Stream classes:

CompressedStream class
The CompressedStream class is a pass-through stream that applies compression and decompression to any type of inner stream, for example a FileStream, MemoryStream, etc.
Keep in mind that once a CompressedStream class is created around a stream, it becomes the owner of the stream and both streams will be closed when the CompressedStream is closed. To bypass this behavior, you can set the Transient property of the CompressedStream class to true. This will prevent the inner stream from being closed along with it.
QuickCompression class
The QuickCompression class exposes static methods that allow quick and easy compression and decompression of byte arrays. The QuickCompression class does not provide as much flexibility as the CompressedStream class. In cases where more complex operations, such as streaming, are required, developers will need to use the CompressedStream class.
