pavexc_rustdoc_types

Crates.iopavexc_rustdoc_types
lib.rspavexc_rustdoc_types
version0.1.53
sourcesrc
created_at2024-11-09 17:19:29.853938
updated_at2024-11-09 17:46:19.420073
descriptionThe slimmed down schema used by pavexc to work with rustdoc's JSON output
homepage
repositoryhttps://github.com/LukeMathWalker/pavex
max_upload_size
id1442236
size48,398
Luca Palmieri (LukeMathWalker)

documentation

README

pavexc_rustdoc_types

It's a fork of rustdoc_types with a specific purpose: maximise performance when working with JSON docs in pavexc.
In particular, we want to minimise the size of the JSON files stored in pavexc SQLite database as well as the time it takes to parse the JSON files returned by rustdoc.

Changes

The changes are rather minimal: we comment out some fields that are not used in pavexc but account for a significant portion of the JSON file size. They are all marked out with a // EXCLUDED! comment.

We rely on this script:

total_size=$(wc -c < file.json); docs_size=$(jq '.. | .field_name1? // .field_name2? // empty' file.json | wc -c); echo "scale=2; $docs
_size*100/$total_size" | bc

to measure the impact of removing field_name1 and field_name2 from the JSON file. The script calculates the percentage of the JSON file size that is taken up by field_name1 and field_name2.

We strive to remove fields that account for a non-negligible portion of the JSON file size, to minimise the overhead of syncing the fork with the upstream repository.

Commit count: 544

cargo fmt