I join lots of strings for compression. It is expected to uncompress a string once rather than all at runtime. I found lzma has exciting compression rates but it is confusing that whether lzma can decompress part of data (a string) if I provide some necessary information and do extra processing.