Working on a safe Rust implementation of a decompressor for the Google Brotli compression format. I’m hoping that the final quality will be good enough for inclusion into a project like Servo. In my opinion, over-reliance on the C foreign function interface to consume existing libraries sacrifices many of the safety benefits of Rust. There needs to be a lot of work sunk into safe implementations of common format decoders like Zip, PNG, JPEG, etc…

It’s an interesting exercise, because it really pushes the bit and byte twiddling capabilities of Rust. I’m also curious to see the trade-offs between safety and performance compared to a highly tuned C implementation.

Project site: https://github.com/peter-bertok/brotli

Original Google code: https://github.com/google/brotli

I’m collecting a list of issues I find in Rust as I go along in the project Wiki: https://github.com/peter-bertok/brotli/wiki

I’ll probably move those into a users.rust-lang.org post at some point…