Live data from Hacker News

Lossless compression with Brotli

blogs.dropbox.com

1–10 of 66 posts

Re: Lossless compression with Brotli

#2
Somewhat interesting for those who missed it - another rust/brotli project was a target for afl-rust. IIRC it didn't find any memory safety issues, but it definitely exposed a few panic crashes:

https://github.com/frewsxcv/afl.rs (discussion https://news.ycombinator.com/item?id=11936983)

I don't think they mentioned fuzzing their Brotli decompressor in this article, but I hope they try afl-rust.

Re: Lossless compression with Brotli

#4
post #2

Somewhat interesting for those who missed it - another rust/brotli project was a target for afl-rust. IIRC it didn't find any memory safety issues, but it definitely exposed a few panic crashes: https://github.com/frewsxcv/afl.rs (discussion https://news.ycombinator.com/item?id=11936983 ) I don't think they mentioned fuzzing their Brotli decompressor in this article, but I hope they try afl-rust.

Apparently this(https://github.com/dropbox/rust-brotli) is much faster than the one(https://github.com/ende76/brotli-rs) fuzzed by afl.rs. Like 10x faster. See https://github.com/ende76/brotli-rs/issues/24.

Re: Lossless compression with Brotli

#7
post #5

Somebody, make "image format powered by brotli", please.

Since most of Brotli's improvements over its ancestor LZ77 are due to its large, hardcoded, text-corpus dictionary [1], most of the algorithm's strengths would be wasted on binary data like images.

Zopfli, from the same people, is a DEFLATE encoder, so it can be used in PNG [2] and this has already been added to some optimizers, e.g. AdvanceCOMP [3]

[1] https://gist.github.com/klauspost/2900d5ba6f9b65d69c8e [2] https://github.com/google/zopfli/commit/337d27f25ef15a6cf34f... [3] http://www.advancemame.it/doc-advpng.html

Re: Lossless compression with Brotli

#10
I'm having a hard time understanding the motivations for porting to rust...

If they were going to run the whole thing in a SECCOMP container anyway, there is little damage a compromised C library could do.

If reasoning about uninitialized memory would take a review of the entire brotli code base, didn't the rust port require that anyway? (speaking as someone who has done a couple of cross-language rewrites)

Post reply on HN