A working demo is included with the download package.
Here are some key features of "LZW Async":
· Input can contain any character from the full ASCII set (i.e. the first 256 Unicode characters).
· Runs asynchronously (both compression and decompression) and provides progress updates every 0.5 seconds.
· Supports use of a custom dictionary where input character range is known in advance. This helps to reduce compressed size.
· Variable-length output encoding (i.e. using the minimum no. of bits necessary) for better compression ratios.
· Automated tests as well as manual testing facility (see index.html).
· Passes JSLint with Tolerate bitwise operators and Tolerate ++ and -- turned on.
· Minified library size is only ~4 KB. With Gzipping this could be easily further reduced.
Requirements:
· JavaScript enabled on client side
Limitations:
· At the moment the compressor only accepts ASCII (upto 256) characters even though JavaScript supports UTF-16 characters in its strings.
· The compression and decompression routines currently use separate dictionary implementations.