rustdoc-types
Types for rustdoc's json output
0.61.0
4.6M downloads/mo
#4679 most downloaded on crates.io
rust-lang/rustdoc-types
What this package is like to depend on
Last release 25 days ago
29 Jul 2026
Release timing varies
gaps range from 2 weeks to 4 months
Nearly every release is documented
notes for 62 of 63 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
65 releases · first in 2020
10 releases in the last 12 months
see the full history below
Release timeline
65 releases · Dec 2020 to Jul 2026Releases
latest 60 of 65-
0.61.029 Jul 2026Release notes
Open source →TODO: Changelog.
- Format Version: 61
- Upstream Commit:
d1da7c52545d95a4458ca4abee868c9743223069 - Diff: v0.60.0...v0.61.0
<a name="v0.60.0"></a>
-
0.60.030 Jun 2026Release notes
Open source →Breaking change: Add
default_unstablefield intoFunction,AssocConstandAssocType. (rust#158468)- Format Version: 60
- Upstream Commit:
bd938c5bfb48fe83ef8f2f54f562c2394c17d89f - Diff: v0.59.0...v0.60.0
<a name="v0.59.0"></a>
-
0.59.026 Jun 2026Release notes
Open source →Breaking change: Add
Item::const_stabilityfield (rust#158343)- Format Version: 59
- Upstream Commit:
fee82a37e9eabf8afe6db62c0177baaf63356a98 - Diff: v0.58.0...v0.59.0
<a name="v0.58.0"></a>
-
0.58.024 Jun 2026Release notes
Open source →Breaking change: Add
Item::stabilityfield (rust#158230)- Format Version: 58
- Upstream Commit:
fee82a37e9eabf8afe6db62c0177baaf63356a98 - Diff: v0.57.4...v0.58.0
<a name="v0.57.4"></a>
-
0.57.419 Jun 2026Release notes
Open source →The last v0.57.4 commit failed to publish, due to issues in the
auto-publish CI flow. Hopefully those have been fixed.Release notes
Open source →Add
rust-version = "1.85.0"toCargo.toml- Format Version: 57
- Upstream Commit:
fee82a37e9eabf8afe6db62c0177baaf63356a98 - Diff: v0.57.3...v0.57.4
<a name="v0.57.3"></a>
-
0.57.312 Mar 2026Release notes
Open source →Documentation Improvement: Fix doctest that didn't compile.
- Format Version: 57
- Upstream Commit:
cf951bae8758e387dcc2b2480ccd971cd6a15972 - Diff: v0.57.2...v0.57.3
<a name="v0.57.2"></a>
-
0.57.212 Mar 2026Release notes
Open source →New Feature: Add the
rkyv_0_8Cargo 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
<a name="v0.57.1"></a>
-
0.57.104 Mar 2026Release notes
Open source →New Method: Add
ItemEnum::ItemKindmethod (rust#153279).Packaging Improvement: Don't package development scripts (#56).
- Format Version: 57
- Upstream Commit:
931e2c4e43fde6a308ee9933538142ed0927f6d9 - Diff: v0.57.0...v0.57.1
<a name="v0.57.0"></a>
-
0.57.022 Nov 2025Release notes
Open source →Breaking Change: Add
ExternalCrate::pathfield. 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
<a name="v0.56.0"></a>
-
0.56.005 Sep 2025Release notes
Open source →Breaking Change: Add
ItemKind::Attributevariant (rust#142472).- Format Version: 56
- Upstream Commit:
ab0ee84eac9732e4e81e559c688846b4c1bd400a - Diff: v0.55.0...v0.56.0
<a name="v0.55.0"></a>
-
0.55.002 Aug 2025Release notes
Open source →Breaking Change: Add
Attribute::MacroUsevariant. This means#[macro_use]is no longer represented byAttribute::Other(rust#144700).- Format Version: 55
- Upstream Commit:
a33e084afe698e0a025211abd6dc1c9a4bb22e9d - Diff: v0.54.0...v0.55.0
<a name="v0.54.0"></a>
-
0.54.017 Jul 2025Release notes
Open source →Breaking Change: Change
Item::attrsfromVec<String>toVec<Attribute>.Attributeis a new enum that contains variants for different attributes, and a catch-allOthervariant. This will mean rustdoc-json consumers won't need to parse common attributes. Changes to the stringified representation inAttribute::Otherwon't cause a newFORMAT_VERSION(rust#142936).- Format Version: 54
- Upstream Commit:
078332fdc8e11f7ff8253c019085098538ec3c2a - Diff: v0.53.0...v0.54.0
<a name="v0.53.0"></a>
-
0.53.023 Jun 2025Release notes
Open source →No Changes: Due to a mistake, we bumped the
FORMAT_VERSIONwithout changing rustdoc's output.- Format Version: 53
- Upstream Commit:
2084831cd54eb603fec6cd85ebd9d1426b09f628 - Diff: v0.52.0...v0.53.0
<a name="v0.52.0"></a>
-
0.52.023 Jun 2025Release notes
Open source →Breaking Change(??):
#[must_use = "text"]inItem::attrsis 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
<a name="v0.51.0"></a>
-
0.51.023 Jun 2025Release notes
Open source →Breaking Change: Change
AssocItemConstraint::argsandType::QualifiedPath::argsfromGenericArgstoOption<Box<GenericArgs>>. This is consistent withPath::args, and smaller on disk (rust#142502).- Format Version: 51
- Upstream Commit:
7fa8901cd090093a57723d3f196c27db3b98ad94 - Diff: v0.50.0...v0.51.0
<a name="v0.50.0"></a>
-
0.50.023 Jun 2025Release notes
Open source →Breaking Change(??):
#[cold]inItem::attrsis now"#[attr = Cold]", instead of"#[cold]"(rust#142491).- Format Version: 50
- Upstream Commit:
b9107a83a1ace3f292641977df70e9610e0e4482 - Diff: v0.49.0...v0.50.0
<a name="v0.49.0"></a>
-
0.49.023 Jun 2025Release notes
Open source →Breaking Change(??):
#[optimize(size)]inItem::attrsis now"#[attr = Optimize(Size)]", instead of"#[optimize(size)]"(rust#138291).- Format Version: 49
- Upstream Commit:
3c418ec505233927d562ff906d8eea309aee1905 - Diff: v0.48.0...v0.49.0
<a name="v0.48.0"></a>
-
0.48.019 Jun 2025Release notes
Open source →Breaking Change(??):
#[inline]inItem::attrsas"#[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
<a name="v0.46.1"></a>
-
0.46.105 Jun 2025Release notes
Open source →Build Time Improvement: Depend separately on
serdeandserde_derive(rather than depending onserdewith 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
<a name="v0.46.0"></a>
-
0.46.003 Jun 2025Release notes
Open source →Versioning Change: The crate version now corresponds to the
FORMAT_VERSIONconstant. (#24)Feature:
Idnow implementsOrdandPartialOrd, making it usable as a key in aBTreeMap(rust#141898).Breaking Change(??):
Item::attrsnow 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
<a name="v0.41.0"></a>
-
0.41.020 Apr 2025Release notes
Open source →Breaking Change: Make
Span::beginandSpan::endconsistently 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
<a name="v0.40.0"></a>
-
0.40.019 Apr 2025Release notes
Open source →Breaking Change: Add
Crate::targetfield with information about the target and its features (rust#139393).- Format Version: 44
- Upstream Commit:
8c50f95cf088c6ccf882a152bd46c090efa3a1c7 - Diff: v0.39.0...v0.40.0
<a name="v0.39.0"></a>
-
0.39.025 Mar 2025Release notes
Open source →Breaking Change: Change format of
Item::attrsfor#[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
<a name="v0.38.0"></a>
-
0.38.016 Mar 2025Release notes
Open source →Breaking Change: Add variant
GenericArgs::ReturnTypeNotationto support return type notation (rust#137956).- Format Version: 42
- Upstream Commit:
e3ac1fa81abd321abe193f491ed06c7d388f68fe - Diff: v0.37.0...v0.38.0
<a name="v0.37.0"></a>
-
0.37.014 Mar 2025Release notes
Open source →Breaking Change: Change
GenericBound::UsefromVec<String>toVec<PreciseCapturingArg>, a new enum (rust#138109).- Format Version: 41
- Upstream Commit:
112f7b01a1b25035cd8b288d6936c6be48a3d845 - Diff: v0.36.0...v0.37.0
<a name="v0.36.0"></a>
-
0.36.026 Feb 2025Release notes
Open source →Breaking Change: Change format of
Item::attrsfrom 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
<a name="v0.35.0"></a>
-
0.35.024 Jan 2025Release notes
Open source →Breaking Change: Rename the
Path::namefield toPath::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
<a name="v0.34.0"></a>
-
0.34.015 Jan 2025Release notes
Open source →Breaking Change: The
Path::namefield now only holds item name rather than the full path. Users needing the full path can find it in theCrate::pathsmap (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
<a name="v0.33.0"></a>
-
0.33.003 Dec 2024Release notes
Open source →Breaking Change: Add new
is_unsafefield inStaticstruct (rust#133715).- Format Version: 37
- Upstream Commit:
f33dba028704d108497b8c06943b9bbc3d14c42b - Diff: v0.32.2...v0.33.0
<a name="v0.32.2"></a>
-
0.32.223 Oct 2024Release notes
Open source →Library Improvement:
ItemKind,TraitBoundModifier, andMacroKindall now implementCopy(rust#131976).- Format Version: 36
- Upstream Commit:
4b658657da324253a201fc7baf70d106db5df7e0 - Diff: v0.32.1...v0.32.2
<a name="v0.32.1"></a>
-
0.32.120 Oct 2024Release notes
Open source →New Feature: The optional
rustc-hashcargo 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
<a name="v0.32.0"></a>
-
0.32.017 Oct 2024Release notes
Open source →Breaking Change: Rename
Trait::is_object_safetois_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
<a name="v0.31.0"></a>
-
0.31.013 Oct 2024Release notes
Open source →Breaking Change: The
Idtype now wraps au32instead of aString. The should hopefully increase performance (rust#130078).Documentation Improvement: Remove false claim from
ProcMacro::helpersdocs (rust#130939).- Format Version: 35
- Upstream Commit:
05c0591321f9956c1f0df4785d3737f40cffb598 - Diff: v0.30.0...v0.31.0
<a name="v0.30.0"></a>
-
0.30.013 Sep 2024Release notes
Open source →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
<br/>
- Format Version: 34
- Upstream Commit:
f2696ab4d3095bb6ad6197e55855ebdf00f50b80 - Diff: v0.29.1...v0.30.0
<a name="v0.29.1"></a>
-
0.29.113 Aug 2024Release notes
Open source →Documentation Improvements: Typo fixes (rust#128903, #29).
- Format Version: 33
- Upstream Commit:
b735547025dad853829a7dbf6b6697090e3f657c - Diff: v0.29.0...v0.29.1
<a name="v0.29.0"></a>
-
0.28.101 Aug 2024Release notes
Open source →Documentation Improvements: The library is now (almost) entirely documented (rust#127290)!
- Format Version: 32
- Upstream Commit:
47b76d8d939be6085e9b1f6fc1a4b959346754a6 - Diff: v0.28.0...v0.28.1
<a name="v0.28.0"></a>
-
0.28.018 Jul 2024Release notes
Open source →Breaking Change: Add
GenericBound::Usefor the (currently unstable)precise_capturingfeature (rust#127632).- Format Version: 32
- Upstream Commit:
bd135e487f904e757f6c3d2ebcc2d216ac4d9aaf - Diff: v0.27.0...v0.28.0
<a name="v0.27.0"></a>
-
0.27.004 Jul 2024Release notes
Open source →Breaking Change:
WherePredicate::RegionPredicatehas been renamed toLifetimePredicate, to avoid compiler-internal terminology. Theboundsfield has been renamed tooutlives, and changed fromVec<GenericBound>toVec<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
<a name="v0.26.0"></a>
-
0.26.006 Jun 2024Release notes
Open source →Breaking Change: Remove
type_fromConstant, and add it toItemEnum::Constant(rust#125958).Documentation Improvements: rust#125130, rust#124322.
- Format Version: 30
- Upstream Commit:
432c11feb6ddfffe6d1d111624ac86386b2fe751 - Diff: v0.25.0...v0.26.0
<a name="v0.25.0"></a>
-
0.25.019 Apr 2024Release notes
Open source →Breaking Change: Add
Type::Patfor unstable pattern types. (rust#120131)- Format Version: 29
- Upstream Commit:
18ff131c4e06d6e1ebfc19092fe1d6c3535eb78b - Diff: v0.24.0...v0.25.0
<a name="v0.24.0"></a>
-
0.24.024 Dec 2023Release notes
Open source →Breaking Change:
Traitnow includes theis_object_safefield. (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
<a name="v0.23.0"></a>
-
0.23.024 Aug 2023Release notes
Open source →Breaking Change:
Typedefhas been renamed toTypeAlias, 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
<a name="v0.22.0"></a>
-
0.22.023 May 2023Release notes
Open source →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
<a name="v0.21.0"></a>
-
0.21.013 May 2023Release notes
Open source →Breaking Change:
Type::QualifiedPath.trait_is now anOption<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
<a name="v0.20.0"></a>
-
0.20.003 Jan 2023Release notes
Open source →Breaking Change:
Varianthas been split intoVariantandVariantKind, so theDiscriminantcan 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
<a name="v0.19.0"></a>
-
0.19.021 Nov 2022Release notes
Open source →- Format Version: 23
- Upstream Commit:
30b7e44a3cabe1c21129253da54b21193f65ebe0 - Diff: v0.19.0...v0.18.0
<a name="v0.18.0"></a>
-
0.18.027 Sep 2022Release notes
Open source →- Format Version: 22
- Upstream Commit:
aac7429c17aa558fbd9fb0be093e7bd9ccc73972 - Diff: v0.18.0...v0.17.0
<a name="v0.17.0"></a>
-
0.17.007 Sep 2022Release notes
Open source →- Format Version: 21
- Upstream Commit:
1c8de173238a02abeb5642c25c3cef1eea52ac18 - Diff: v0.17.0...v0.16.0
<a name="v0.16.0"></a>
-
0.16.007 Sep 2022Release notes
Open source →- Format Version: 20
- Upstream Commit:
065e0b9c9cf3d03f286c5d0b98fbae7185e41b75 - Diff: v0.16.0...v0.15.0
<a name="v0.15.0"></a>
-
0.15.005 Sep 2022Release notes
Open source →- Format Version: 19
- Upstream Commit:
b76a012be16de964c242594afba4323997f436b2 - Diff: v0.15.0...v0.14.0
<a name="v0.14.0"></a>
-
0.14.015 Aug 2022Release notes
Open source →- Format Version: 18
- Upstream Commit:
4989f6a7247930ba027fa4b96a0c284f6ab02942 - Diff: v0.14.0...v0.13.1
<a name="v0.13.1"></a>
-
0.13.110 Aug 2022Release notes
Open source →- Format Version: 17
- Upstream Commit:
0dc39c7bd9795927b903c8c24e89a00788ce3e33 - Diff: v0.13.1...v0.13.0
<a name="v0.13.0"></a>
-
0.13.009 Aug 2022Release notes
Open source →- Format Version: 17
- Upstream Commit:
a856e57f6cc8ba8bb83c5abadce338f589df6b10 - Diff: v0.13.0...v0.12.0
<a name="v0.12.0"></a>
-
0.12.018 Jul 2022Release notes
Open source →- Format Version: 16
- Upstream Commit:
1a15c7147f90afaa64ae3ff27fcbd678e2e44a8e - Diff: v0.12.0...v0.11.0
<a name="v0.11.0"></a>
-
0.11.018 May 2022Release notes
Open source →- Format Version: 15
- Upstream Commit:
1f15ce5f9748d523f3c1835da12b05b15648aa68 - Diff: v0.11.0...v0.10.0
<a name="v0.10.0"></a>
-
0.10.014 Mar 2022Release notes
Open source →- Format Version: 14
- Upstream Commit:
a5c0b1470cc48e665eabf29881dd87438973ab97 - Diff: v0.10.0...v0.9.0
<a name="v0.9.0"></a>
-
0.9.012 Mar 2022Release notes
Open source →- Format Version: 13
- Upstream Commit:
aa763fcf421e627455aa1de16df1292c8e1bcb9d - Diff: v0.9.0...v0.8.0
<a name="v0.8.0"></a>
-
0.8.004 Mar 2022Release notes
Open source →- Format Version: 12
- Upstream Commit:
aefc0a223a0022a156be07b18feb45cd07e517e0 - Diff: v0.8.0...v0.7.0
<a name="v0.7.0"></a>
-
0.7.024 Feb 2022Release notes
Open source →- Format Version: 11
- Upstream Commit:
aa601574a5fe861bffd641beccf59c7be3ed16c9 - Diff: v0.7.0...v0.6.0
<a name="v0.6.0"></a>
-
0.6.001 Feb 2022Release notes
Open source →- Format Version: 10
- Upstream Commit:
1521b53c532ccd90c504b0c860cd5662172cc05e - Diff: v0.6.0...v0.5.0
<a name="v0.5.0"></a>