| Crates.io | pavexc_rustdoc_types |
| lib.rs | pavexc_rustdoc_types |
| version | 0.1.80 |
| created_at | 2024-11-09 17:19:29.853938+00 |
| updated_at | 2025-03-22 15:57:49.049876+00 |
| description | The slimmed down schema used by pavexc to work with rustdoc's JSON output |
| homepage | |
| repository | https://github.com/LukeMathWalker/pavex |
| max_upload_size | |
| id | 1442236 |
| size | 51,488 |
pavexc_rustdoc_typesIt'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.
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.