roadroller
roadroller copied to clipboard
Better support for larger inputs
The current decompressor is optimized for size and very slow (<50 KB/s). I've been asked about the possibility to use Roadroller for larger inputs, possibly around the single digit megabyte range, and while Roadroller is generally not a good choice for them I've heard of several (rarer) use cases where Roadroller can actually help.
Possible improvements:
- [ ] Reimplement the decompressor in wasm (would be 3--4x faster). This is not hard to do, but we need to think carefully about the memory layout. This will increase the compressed size by several hundred bytes so probably we need a separate option for that.
- [ ] Support a progress callback for larger inputs. Roadroller currently assumes that each compression round is fast enough that no further report is required, but it will be definitely required for larger inputs.
- [ ] Length-reducing preprocessor (e.g. LZ77). This can possibly trigger a major architecture change.
How about add option for decompressor? size first, speed first, balanced, etc.