is there a document somewhere that describes the various wire formats? I see there is at least V0, V1. I think reducing the span of the compressed array will benefit largely the decoding side because then we do not need to allocate the full array every time (especially to store zeros). Since most runs will result in relatively aggregated counters, it would make sense to exclude not only the upper counters that are zero (as suggested by @giltene) but also the lower zero counters. Even with 2 digits I still have around 6K counters and in my case having to allocate only a few hundred counters per decode out of 6K would make sense (I still have not found how to avoid decompress to create a new storage every time).