Add API to support random access at block boundaries #170
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See comment #166 for rationale. Basically, this allows users to implement random access in the same way as zlib's
zran.c
, and avoids the downsides of serializing the entireDecompressorOxide
state.I've used this API in https://github.com/zaynar/indexed_deflate (WIP) and done some very basic testing on a few large .gz files.
Currently that code only uses
BlockBoundaryState::num_bits
. The other state fields are completely untested. If the basic concept of this patch seems acceptable, I can try to add some better testing here.