  We consider the problem of decompressing the Lempel--Ziv 77 representation of
a string $S$ of length $n$ using a working space as close as possible to the
size $z$ of the input. The folklore solution for the problem runs in $O(n)$
time but requires random access to the whole decompressed text. Another
folklore solution is to convert LZ77 into a grammar of size $O(z\log(n/z))$ and
then stream $S$ in linear time. In this paper, we show that $O(n)$ time and
$O(z)$ working space can be achieved for constant-size alphabets. On general
alphabets of size $\sigma$, we describe (i) a trade-off achieving
$O(n\log^\delta \sigma)$ time and $O(z\log^{1-\delta}\sigma)$ space for any
$0\leq \delta\leq 1$, and (ii) a solution achieving $O(n)$ time and
$O(z\log\log (n/z))$ space. The latter solution, in particular, dominates both
folklore algorithms for the problem. Our solutions can, more generally, extract
any specified subsequence of $S$ with little overheads on top of the linear
running time and working space. As an immediate corollary, we show that our
techniques yield improved results for pattern matching problems on
LZ77-compressed text.
