-
Notifications
You must be signed in to change notification settings - Fork 27
Task List
Joe Tsai edited this page May 24, 2017
·
26 revisions
By popular request, Brotli is currently the main focus. However, in order to satisfy that objective, a DEFLATE implementation will be done first.
- Implement
flate.Writer - Implement
brotli.Writer
The Brotli format shares many similarities with DEFLATE. At its core, it is built on the ideas of LZ77 and Huffman bit-encoding. Thus, implementing DEFLATE first will allow for a better understanding of how to implement Brotli well. Given that the Readers were able to share much code, it is likely that the Writers will also be able to share much code.
-
brotli-
Reader- Make use of
internal/prefix - Add more tests for malicious and strange inputs
- Eagerly return io.EOF at end of block when possible
- Make use of
-
Writer- Implement me!
-
-
bzip2-
Reader- (performance) Add chunking between stages to reduce total memory bandwidth
- (performance) Investigate other ways to improve performance
-
Writer- Optimize assignment of prefix trees for better compression ratio
- Investigate various BWT construction methods:
-
bwtis,sais,qsufsort,divsufsort
-
- (performance) Add chunking between stages to reduce total memory bandwidth
- (performance) Investigate other ways to improve performance
-
-
flate-
Reader- Make use of
internal/dictwhen available
- Make use of
-
Writer- Implement me!
-
-
xz- Implement me!
-
zstd- Implement me!
-
internal- Rename
prefixtobitsand abstract the prefix encoding logic as a sub-packagebits/prefix - Create package
dictto implement a generic LZ77 dictionary for use inbrotliandflate
- Rename