rustdoc: use smarter encoding for playground URL by notriddle · Pull Request #107284 · rust-lang/rust (original) (raw)

The old way would compress okay with DEFLATE, but this version makes uncompressed docs smaller, which matters for memory usage and stuff like cargo doc.

Try it out: https://play.rust-lang.org/?code=fn+main()+{%0Alet+mut+v+=+Vec::new();%0Av.push(1+/+1);%0Aprintln!(%22{}%22,+v[0]);%0A}

In local testing, this change shrinks sample pages by anywhere between 4.0% and 0.031%

$ du -b after.dir/std/vec/struct.Vec.html before.dir/std/vec/struct.Vec.html
759235  after.dir/std/vec/struct.Vec.html
781842  before.dir/std/vec/struct.Vec.html

100*((759235-781842)/781842)=-2.8

$ du -b after.dir/std/num/struct.Wrapping.html before.dir/std/num/struct.Wrapping.html
3194173 after.dir/std/num/struct.Wrapping.html
3204351 before.dir/std/num/struct.Wrapping.html

100*((3194173-3204351)/3204351)=-0.031

$ du -b after.dir/std/keyword.match.html before.dir/std/keyword.match.html
8151    after.dir/std/keyword.match.html
8495    before.dir/std/keyword.match.html

100*((8151-8495)/8495)=-4.0

Gzipped tarball sizes seem shrunk, but not by much.

du -s before.tar.gz after.tar.gz
69600   before.tar.gz
69480   after.tar.gz

100*((69480-69600)/69600)=-0.17