🏹 Where do we stand?
You have implemented a full Zstandard decoder, even capable of verifying the integrity of uncompressed data.
Of course, you might want to optimize your code, for example:
- Each frame is independently encoded and can be decoded in parallel.
- Literal sections and sequences decoding can progress simultaneously, while producing the decoded data. This will reduce the number of bytes to be processed.
- Outputting data as decoding progresses would allow starting emitting data sooner.
But more importantly, your decoder must be made robust. This is what the next section is for.