roadroller icon indicating copy to clipboard operation
roadroller copied to clipboard

Better support for larger inputs

Open lifthrasiir opened this issue 2 years ago • 1 comments

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.

lifthrasiir avatar Sep 25 '21 03:09 lifthrasiir

How about add option for decompressor? size first, speed first, balanced, etc.

da0ka avatar Dec 12 '21 10:12 da0ka