Skip to content

bantic/gziprust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Gzip in Rust

A Gzip decoder (inflater) written entirely in Rust, with (almost) no crates.

TODOS

  • avoid building a giant buffer of bits during decoding of Stored blocks
  • try it out via WebAssembly?
  • Make it a command-line binary
  • better name
  • perf profiling

Done

  • Better command-line argument parsing (allow debug output or simply decoding to a file)
    • replace Config with structopt
  • Test multiple blocks
  • Allow matches to cross backwards into previous blocks
  • Add support for uncompressed blocks
  • add method to advance bit iterator to next byte, and to turn it back into a byte iterator, to do checksum matching. Didn't add the method, but did add code to confirm the size and crc32 matched
  • Update the playback mode to also vary the pace by how many bits were required to encode the literal
  • Add a playback mode that shows a bit more about the compression -- print out at a given pace, each thing decoded... So the same amount of time to print a single decoded literal as to print out a matched chunk...
  • Update playback mode to show some visual indication of both bits-per-literal (different sizes? or just shades of a color) and matched lengths (use a color + perhaps a dist,len annotation)
    • Via the same visualizer tool ^

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages