Salzweg is a LZW encoder and decoder. It supports the GIF flavored, TIFF flavored and fixed code flavors of LZW.
LZW is a universal lossless data compression algorithm.
The aim of this library is to be memory efficient, and fast.
- The decoder lives only on the stack, and will be friendly with machines with low memory.
- The encoder builds on the heap though, as it creates a growing tree of possible encoded words as the compression progresses.
- This link definitly helped me understand LZW through and through: https://www.eecis.udel.edu/~amer/CISC651/lzw.and.gif.explained.html
- This rust example was a good starting point for implementing the compression, though this solution was totally abandonned later on.
- Arena-Allocated Trees in Rust as I used something like that in the encoder.
Code is licensed under MIT.