js-coroutines now supports lz-string compression and decompression while you animate at 60fps.
The js-coroutines library uses coroutines and
requestIdleCallback to run heavy operations inbetween animations for a smooth user experience. I've recently added lz-string support so you can run powerful compression and decompression algorithms while the user has a seamless experience.
You can read about how js-coroutines works here on Dev.to.