v0.57.3 - 2026-03-12
Documentation Improvement: Fix doctest that didn't compile.
- Format Version: 57
- Upstream Commit:
cf951bae8758e387dcc2b2480ccd971cd6a15972 - Diff: v0.57.2...v0.57.3
v0.57.2 - 2026-03-12
New Feature: Add the rkyv_0_8 Cargo feature, to derive traits for the rkyv zero-copy deserialization framework
(rust#153283).
- Format Version: 57
- Upstream Commit:
cf951bae8758e387dcc2b2480ccd971cd6a15972 - Diff: v0.57.1...v0.57.2
v0.57.1 - 2026-03-04
New Method: Add ItemEnum::ItemKind method
(rust#153279).
Packaging Improvement: Don't package development scripts (#56).
- Format Version: 57
- Upstream Commit:
931e2c4e43fde6a308ee9933538142ed0927f6d9 - Diff: v0.57.0...v0.57.1
v0.57.0 - 2025-11-22
Breaking Change: Add ExternalCrate::path field.
This can be used to enable robust resolution of external crates
(rust#149043).
- Format Version: 57
- Upstream Commit:
361af821ab169a98e9fc1db5d3a57978504ed379 - Diff: v0.56.0...v0.57.0
v0.56.0 - 2025-09-05
Breaking Change: Add ItemKind::Attribute variant
(rust#142472).
- Format Version: 56
- Upstream Commit:
ab0ee84eac9732e4e81e559c688846b4c1bd400a - Diff: v0.55.0...v0.56.0
v0.55.0 - 2025-08-02
Breaking Change: Add Attribute::MacroUse variant.
This means #[macro_use] is no longer represented by Attribute::Other
(rust#144700).
- Format Version: 55
- Upstream Commit:
a33e084afe698e0a025211abd6dc1c9a4bb22e9d - Diff: v0.54.0...v0.55.0
v0.54.0 - 2025-07-17
Breaking Change: Change Item::attrs from Vec<String> to
Vec<Attribute>. Attribute is a new enum that contains variants for different
attributes, and a catch-all Other variant. This will mean rustdoc-json
consumers won't need to parse common attributes. Changes to the stringified
representation in Attribute::Other won't cause a new FORMAT_VERSION
(rust#142936).
- Format Version: 54
- Upstream Commit:
078332fdc8e11f7ff8253c019085098538ec3c2a - Diff: v0.53.0...v0.54.0
v0.53.0 - 2025-06-23
No Changes: Due to a mistake, we bumped the FORMAT_VERSION without changing rustdoc's output.
- Format Version: 53
- Upstream Commit:
2084831cd54eb603fec6cd85ebd9d1426b09f628 - Diff: v0.52.0...v0.53.0
v0.52.0 - 2025-06-23
Breaking Change(??): #[must_use = "text"] in Item::attrs is now
"#[attr = MustUse {reason: \"text\"}]",
instead of "#[must_use = \"text\"]"
(rust#142780).
- Format Version: 52
- Upstream Commit:
b24df424888d9db3a22d6d52f3f516e29d5be21a - Diff: v0.51.0...v0.52.0
v0.51.0 - 2025-06-23
Breaking Change: Change AssocItemConstraint::args and Type::QualifiedPath::args from GenericArgs to Option<Box<GenericArgs>>.
This is consistent with Path::args, and smaller on disk (rust#142502).
- Format Version: 51
- Upstream Commit:
7fa8901cd090093a57723d3f196c27db3b98ad94 - Diff: v0.50.0...v0.51.0
v0.50.0 - 2025-06-23
Breaking Change(??): #[cold] in Item::attrs is now "#[attr = Cold]", instead of "#[cold]"
(rust#142491).
- Format Version: 50
- Upstream Commit:
b9107a83a1ace3f292641977df70e9610e0e4482 - Diff: v0.49.0...v0.50.0
v0.49.0 - 2025-06-23
Breaking Change(??): #[optimize(size)] in Item::attrs is now "#[attr = Optimize(Size)]", instead of "#[optimize(size)]"
(rust#138291).
- Format Version: 49
- Upstream Commit:
3c418ec505233927d562ff906d8eea309aee1905 - Diff: v0.48.0...v0.49.0
v0.48.0 - 2025-06-19
Breaking Change(??): #[inline] in Item::attrs as "#[attr = Inline(Hint)]", instead of "#[inline]"
(rust#138165).
Note
Due to a mistake, format version 47/rustdoc-types 0.47.0 was skipped, and will never exist. See here for details.
- Format Version: 48
- Upstream Commit:
81f8b570b9dd5d7bef27e1f1391dc73eb8fa4ff6 - Diff: v0.46.1...v0.48.0
v0.46.1 - 2025-06-05
Build Time Improvement: Depend separately on serde and serde_derive
(rather than depending on serde with the "derive" feature). This lets them be
built in parallel, yielding faster compile times
(#49,
rust#141989).
- Format Version: 46
- Upstream Commit:
763663ad56672b0f0635ad25c0c1a52e7773e0b9 - Diff: v0.46.0...v0.46.1
v0.46.0 - 2025-06-03
Versioning Change: The crate version now corresponds to the FORMAT_VERSION constant.
(#24)
Feature: Id now implements Ord and PartialOrd, making it usable as a
key in a BTreeMap
(rust#141898).
Breaking Change(??): Item::attrs now always includes #[repr]. No changes
were made to the schema but the format version has been bumped, as this may
effect consuming tools regardless
(rust#141126).
Documentation Improvements: Fixed some false docs (rust#141364).
- Format Version: 46
- Upstream Commit:
6be3c3ceb7351677999c661dfba0110992b37132 - Diff: v0.41.0...v0.46.0
v0.41.0 - 2025-04-20
Breaking Change: Make Span::begin and Span::end consistently one-indexed
for both line and column
(rust#139919).
Previously this was incorrectly documented both line and column being
zero-indexed, but line was actually one-indexed
(rust#139906).
No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.
- Format Version: 45
- Upstream Commit:
076016d55afdf760c7e30e23c5df8f0c079cd85b - Diff: v0.40.0...v0.41.0
v0.40.0 - 2025-04-19
Breaking Change: Add Crate::target field with information about the target and its features
(rust#139393).
- Format Version: 44
- Upstream Commit:
8c50f95cf088c6ccf882a152bd46c090efa3a1c7 - Diff: v0.39.0...v0.40.0
v0.39.0 - 2025-03-24
Breaking Change: Change format of Item::attrs for #[repr(..)] from HIR
debug printing to how they're written in source-code. For example
#[attr = Repr([ReprC, ReprInt(SignedInt(I8))])]) would now be represented as
#[repr(C,i8)]
(rust#138018).
This somewhat undoes v0.36.0.
No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.
- Format Version: 43
- Upstream Commit:
bafdbcadd5e70e4a1a35647002c30efd315621b4 - Diff: v0.38.0...v0.39.0
v0.38.0 - 2025-03-16
Breaking Change: Add variant GenericArgs::ReturnTypeNotation to support
return type notation
(rust#137956).
- Format Version: 42
- Upstream Commit:
e3ac1fa81abd321abe193f491ed06c7d388f68fe - Diff: v0.37.0...v0.38.0
v0.37.0 - 2025-03-14
Breaking Change: Change GenericBound::Use from Vec<String> to
Vec<PreciseCapturingArg>, a new enum
(rust#138109).
- Format Version: 41
- Upstream Commit:
112f7b01a1b25035cd8b288d6936c6be48a3d845 - Diff: v0.36.0...v0.37.0
v0.36.0 - 2025-02-26
Breaking Change: Change format of Item::attrs from e.g. "#[inline]" to
e.g. #[attr="Inline(Hint)"] which is equivalent to the hir pretty-printing of
attributes (rust#135726).
This is result of a refractoring of how rustc represents attributes. There will be a change (at some point) to make them easier to use in rustdoc-json. See rust#137645 for details.
No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.
- Format Version: 40
- Upstream Commit:
f321f107e3af37996ac6cca74294d581f2fb20e7 - Diff: v0.35.0...v0.36.0
v0.35.0 - 2025-01-24
Breaking Change: Rename the Path::name field to Path::path, and make it
have the entire path. This effectively reverts the previous release,
as it was not possible for many consumers to
migrate
(rust#135799).
- Format Version: 39
- Upstream Commit:
40e28582bb95e33f762dea75b78f6ebb5c29b836 - Diff: v0.34.0...v0.35.0
v0.34.0 - 2025-01-15
Breaking Change: The Path::name field now only holds item name rather than
the full path. Users needing the full path can find it in the Crate::paths map
(rust#134880).
No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.
- Format Version: 38
- Upstream Commit:
2c4aee92fa65e74f23ad7853937db8d2c4bfa6c8 - Diff: v0.33.0...v0.34.0
v0.33.0 - 2024-12-03
Breaking Change: Add new is_unsafe field in Static struct (rust#133715).
- Format Version: 37
- Upstream Commit:
f33dba028704d108497b8c06943b9bbc3d14c42b - Diff: v0.32.2...v0.33.0
v0.32.2 - 2024-10-23
Library Improvement: ItemKind, TraitBoundModifier, and MacroKind all now implement Copy (rust#131976).
- Format Version: 36
- Upstream Commit:
4b658657da324253a201fc7baf70d106db5df7e0 - Diff: v0.32.1...v0.32.2
v0.32.1 - 2024-10-20
New Feature: The optional rustc-hash cargo feature has been added.
This changes the hashing algorithm used to a speedy non-cryptographic hashing algorithm also used in rustc.
This has lead to modest but appreciable performance gains for some consumers
(#42, rust#131936).
- Format Version: 36
- Upstream Commit:
d1fa49b2e66c343210c413b68ed57f150b7b89d8 - Diff: v0.32.0...v0.32.1
v0.32.0 - 2024-10-17
Breaking Change: Rename Trait::is_object_safe to is_dyn_compatible. This is a part of a language wide rename to make the term explain its meaning (rust#131595).
- Format Version: 36
- Upstream Commit:
2e6f3bd1d32455e535de1d9ee154253c333aec73 - Diff: v0.31.0...v0.32.0
v0.31.0 - 2024-10-13
Breaking Change: The Id type now wraps a u32 instead of a String. The should hopefully increase performance (rust#130078).
Documentation Improvement: Remove false claim from ProcMacro::helpers docs (rust#130939).
- Format Version: 35
- Upstream Commit:
05c0591321f9956c1f0df4785d3737f40cffb598 - Diff: v0.30.0...v0.31.0
v0.30.0 - 2024-09-13
Breaking Change: Many structs and fields have been renamed (rust#128667):
Importis nowUse, to better reflect the syntax and the reference.TypeBindingis nowAssocItemConstraint, to reflect that it can also work on associated constants, and that it can either require the associated item to equal a term, or satisfy bounds.- Similarly,
TypeBindingKindis nowAssocItemConstraintKind bindingshas been renamed toconstraintsonGenericArgs::AngleBracketed
- Similarly,
ForeignTypehas been renamed toExternType, because that's what the feature is called. "Foreign" refers to types that aren't from the current crate, whereas Extern Types are entirely opaque to the type system (and may be in the current crate).ItemEnum::AssocConstandItemEnum::AssocType'sdefaultfield has been renamed tovalue, to clarify that they can appear in both animplandtraititem.Headeris nowFunctionHeader, to be clearer what it is.FnDeclis nowFunctionSignature, as it's also used forFunctionPointertypes (and not just function items).declfield is nowsig
- Boolean fields are now
is_orhas_prefixed for clarity:fields_strippedis nowhas_fields_strippedvariants_strippedis nowhas_stripped_variantsconst_is nowis_constasync_is nowis_asyncunsafe_is nowis_unsafesyntheticis nowis_syntheticmutableis nowis_mutablec_variadicis nowis_c_variadicnegativeis nowis_negativeglobis nowis_glob
- Format Version: 34
- Upstream Commit:
f2696ab4d3095bb6ad6197e55855ebdf00f50b80 - Diff: v0.29.1...v0.30.0
v0.29.1 - 2024-08-13
Documentation Improvements: Typo fixes (rust#128903, #29).
- Format Version: 33
- Upstream Commit:
b735547025dad853829a7dbf6b6697090e3f657c - Diff: v0.29.0...v0.29.1
v0.29.0 - 2024-08-01
Note
Due to a mistake, this version was never published to crates.io. Users can use v0.29.1 instead.
Breaking Change: Removed OpaqueTy, ItemKind::OpaqueTy and ItemEnum::OpaqueTy. These were only generated with rarely used nightly features, so almost all documents will be unaffected (rust#127276).
- Format Version: 33
- Upstream Commit:
73ac5e0c6e8e0e35229444caf5461c6c079122b4 - Diff: v0.28.1...v0.29.0
v0.28.1 - 2024-08-01
Documentation Improvements: The library is now (almost) entirely documented (rust#127290)!
- Format Version: 32
- Upstream Commit:
47b76d8d939be6085e9b1f6fc1a4b959346754a6 - Diff: v0.28.0...v0.28.1
v0.28.0 - 2024-07-18
Breaking Change: Add GenericBound::Use for the (currently unstable) precise_capturing feature (rust#127632).
- Format Version: 32
- Upstream Commit:
bd135e487f904e757f6c3d2ebcc2d216ac4d9aaf - Diff: v0.27.0...v0.28.0
v0.27.0 - 2024-07-04
Breaking Change: WherePredicate::RegionPredicate has been renamed to
LifetimePredicate, to avoid compiler-internal terminology. The bounds field
has been renamed to outlives, and changed from Vec<GenericBound> to
Vec<String>, because the only bound that lifetimes can have is that they
outlife other lifetimes
(rust#127289).
- Format Version: 31
- Upstream Commit:
7e8aac553e756b0eb03fe98e1a65ffc47836ec51 - Diff: v0.26.0...v0.27.0
v0.26.0 - 2024-06-06
Breaking Change: Remove type_ from Constant, and add it to ItemEnum::Constant (rust#125958).
Documentation Improvements: rust#125130, rust#124322.
- Format Version: 30
- Upstream Commit:
432c11feb6ddfffe6d1d111624ac86386b2fe751 - Diff: v0.25.0...v0.26.0
v0.25.0 - 2024-04-19
Breaking Change: Add Type::Pat for unstable pattern types. (rust#120131)
- Format Version: 29
- Upstream Commit:
18ff131c4e06d6e1ebfc19092fe1d6c3535eb78b - Diff: v0.24.0...v0.25.0
v0.24.0 - 2023-12-23
Breaking Change: Trait now includes the is_object_safe field. (rust#119246)
Internal Improvement: The scripts to generate the changelog have been revamped to allow hand-written information in the changelog, and to make the release process easier.
- Format Version: 28
- Upstream Commit:
c29f763153ac89e7930c6d50f5ab4656318b30d4 - Diff: v0.23.0...v0.24.0
v0.23.0 - 2023-08-23
Breaking Change: Typedef has been renamed to TypeAlias, as this is what
people (and the reference) generally call these items. (rust#115078)
- Format Version: 27
- Upstream Commit:
c90a5b2019e5a862c8fb5ae39dcf6ad5f4c65b09 - Diff: v0.23.0...v0.22.0
v0.22.0 - 2023-05-23
Breaking Change: All enums now use external tagging. No change is required to move to this version (all all the types are the same), but it won't be able to read JSON files from older rustdoc versions, as enums will be represented differently. This change allows using non-self-describing serde serializers (like bincode), although rustdoc itself won't generate these. (rust#111427)
- Format Version: 26
- Upstream Commit:
a5e51013753ca75c239403b47af1e605f5af2a64 - Diff: v0.22.0...v0.21.0
v0.21.0 - 2023-05-13
Breaking Change: Type::QualifiedPath.trait_ is now an Option<Path>
(instead of path). This is to support the (currently unstable) inherent
associated types feature.
(rust#109410)
- Format Version: 25
- Upstream Commit:
61e1eda6db042413cf1794407fd10b7edc90059d - Diff: v0.21.0...v0.20.0
v0.20.0 - 2023-01-03
Breaking Change: Variant has been split into Variant and VariantKind,
so the Discriminant can always be reported. Previously, it could only be
reported for a plain enum variant (i.e. one with no fields or braces).
(rust#106354)
- Format Version: 24
- Upstream Commit:
cca5d219e6801ebc2a62b455a12c657098a8af2d - Diff: v0.20.0...v0.19.0
v0.19.0 - 2022-11-21
- Format Version: 23
- Upstream Commit:
30b7e44a3cabe1c21129253da54b21193f65ebe0 - Diff: v0.19.0...v0.18.0
v0.18.0 - 2022-09-27
- Format Version: 22
- Upstream Commit:
aac7429c17aa558fbd9fb0be093e7bd9ccc73972 - Diff: v0.18.0...v0.17.0
v0.17.0 - 2022-09-08
- Format Version: 21
- Upstream Commit:
1c8de173238a02abeb5642c25c3cef1eea52ac18 - Diff: v0.17.0...v0.16.0
v0.16.0 - 2022-09-07
- Format Version: 20
- Upstream Commit:
065e0b9c9cf3d03f286c5d0b98fbae7185e41b75 - Diff: v0.16.0...v0.15.0
v0.15.0 - 2022-09-05
- Format Version: 19
- Upstream Commit:
b76a012be16de964c242594afba4323997f436b2 - Diff: v0.15.0...v0.14.0
v0.14.0 - 2022-08-15
- Format Version: 18
- Upstream Commit:
4989f6a7247930ba027fa4b96a0c284f6ab02942 - Diff: v0.14.0...v0.13.1
v0.13.1 - 2022-08-10
- Format Version: 17
- Upstream Commit:
0dc39c7bd9795927b903c8c24e89a00788ce3e33 - Diff: v0.13.1...v0.13.0
v0.13.0 - 2022-08-09
- Format Version: 17
- Upstream Commit:
a856e57f6cc8ba8bb83c5abadce338f589df6b10 - Diff: v0.13.0...v0.12.0
v0.12.0 - 2022-07-18
- Format Version: 16
- Upstream Commit:
1a15c7147f90afaa64ae3ff27fcbd678e2e44a8e - Diff: v0.12.0...v0.11.0
v0.11.0 - 2022-05-18
- Format Version: 15
- Upstream Commit:
1f15ce5f9748d523f3c1835da12b05b15648aa68 - Diff: v0.11.0...v0.10.0
v0.10.0 - 2022-03-14
- Format Version: 14
- Upstream Commit:
a5c0b1470cc48e665eabf29881dd87438973ab97 - Diff: v0.10.0...v0.9.0
v0.9.0 - 2022-03-12
- Format Version: 13
- Upstream Commit:
aa763fcf421e627455aa1de16df1292c8e1bcb9d - Diff: v0.9.0...v0.8.0
v0.8.0 - 2022-03-04
- Format Version: 12
- Upstream Commit:
aefc0a223a0022a156be07b18feb45cd07e517e0 - Diff: v0.8.0...v0.7.0
v0.7.0 - 2022-02-24
- Format Version: 11
- Upstream Commit:
aa601574a5fe861bffd641beccf59c7be3ed16c9 - Diff: v0.7.0...v0.6.0
v0.6.0 - 2022-02-01
- Format Version: 10
- Upstream Commit:
1521b53c532ccd90c504b0c860cd5662172cc05e - Diff: v0.6.0...v0.5.0
v0.5.0 - 2021-10-16
- Format Version: 9
- Upstream Commit:
43f4ef5c6a059c32e19483ff3d295feb2f37c5b8 - Diff: v0.5.0...v0.4.0
v0.4.0 - 2021-09-06
- Format Version: 7
- Upstream Commit:
2a6022949077176bfff9f72282dc52e51a175cb7 - Diff: v0.4.0...v0.3
v0.3 - 2021-06-25
- Format Version: 5
- Upstream Commit:
6dff51f37d87eb02e8776032fa8da16c990a3283 - Diff: v0.3...v0.2.0
v0.2.0 - 2021-01-23
- Format Version: 2
- Upstream Commit:
2ceee724270f2186e5e85acff49acd35bf8a652a - Diff: v0.2.0...v0.1.0
v0.1.0 - 2020-12-06
- Format Version: 1
- Upstream Commit:
7dc1e852d43cb8c9e77dc1e53014f0eb85d2ebfb - Diff: v0.1.0...