Thanks to visit codestin.com
Credit goes to lib.rs

#rustdoc-json #pavexc

pavexc_rustdoc_types

The slimmed down schema used by pavexc to work with rustdoc's JSON output

29 releases

Uses new Rust 2024

0.1.80 Mar 22, 2025
0.1.79 Mar 14, 2025
0.1.77 Feb 26, 2025
0.1.70 Jan 24, 2025
0.1.58 Nov 29, 2024

#193 in Procedural macros

Codestin Search App Codestin Search App Codestin Search App

2,386 downloads per month

Apache-2.0

50KB
456 lines

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.

Dependencies

~0.3–0.8MB
~19K SLoC