PackageTrack
Sign in Get early access

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 2026
2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 65
  1. 0.61.0 29 Jul 2026
    Release notes

    TODO: Changelog.

    <a name="v0.60.0"></a>

    Open source →
  2. 0.60.0 30 Jun 2026
    Release notes

    Breaking change: Add default_unstable field into Function, AssocConst and AssocType. (rust#158468)

    <a name="v0.59.0"></a>

    Open source →
  3. 0.59.0 26 Jun 2026
    Release notes

    Breaking change: Add Item::const_stability field (rust#158343)

    <a name="v0.58.0"></a>

    Open source →
  4. 0.58.0 24 Jun 2026
    Release notes

    Breaking change: Add Item::stability field (rust#158230)

    <a name="v0.57.4"></a>

    Open source →
  5. 0.57.4 19 Jun 2026
    Release notes

    The last v0.57.4 commit failed to publish, due to issues in the
    auto-publish CI flow. Hopefully those have been fixed.

    Open source →
    Release notes

    Add rust-version = "1.85.0" to Cargo.toml

    <a name="v0.57.3"></a>

    Open source →
  6. 0.57.3 12 Mar 2026
    Release notes

    Documentation Improvement: Fix doctest that didn't compile.

    <a name="v0.57.2"></a>

    Open source →
  7. 0.57.2 12 Mar 2026
    Release notes

    New Feature: Add the rkyv_0_8 Cargo feature, to derive traits for the rkyv zero-copy deserialization framework (rust#153283).

    <a name="v0.57.1"></a>

    Open source →
  8. 0.57.1 04 Mar 2026
    Release notes

    New Method: Add ItemEnum::ItemKind method (rust#153279).

    Packaging Improvement: Don't package development scripts (#56).

    <a name="v0.57.0"></a>

    Open source →
  9. 0.57.0 22 Nov 2025
    Release notes

    Breaking Change: Add ExternalCrate::path field. This can be used to enable robust resolution of external crates (rust#149043).

    <a name="v0.56.0"></a>

    Open source →
  10. 0.56.0 05 Sep 2025
    Release notes

    Breaking Change: Add ItemKind::Attribute variant (rust#142472).

    <a name="v0.55.0"></a>

    Open source →
  11. 0.55.0 02 Aug 2025
    Release notes

    Breaking Change: Add Attribute::MacroUse variant. This means #[macro_use] is no longer represented by Attribute::Other (rust#144700).

    <a name="v0.54.0"></a>

    Open source →
  12. 0.54.0 17 Jul 2025
    Release notes

    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).

    <a name="v0.53.0"></a>

    Open source →
  13. 0.53.0 23 Jun 2025
    Release notes

    No Changes: Due to a mistake, we bumped the FORMAT_VERSION without changing rustdoc's output.

    <a name="v0.52.0"></a>

    Open source →
  14. 0.52.0 23 Jun 2025
    Release notes

    Breaking Change(??): #[must_use = "text"] in Item::attrs is now "#[attr = MustUse {reason: \"text\"}]", instead of "#[must_use = \"text\"]" (rust#142780).

    <a name="v0.51.0"></a>

    Open source →
  15. 0.51.0 23 Jun 2025
    Release notes

    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).

    <a name="v0.50.0"></a>

    Open source →
  16. 0.50.0 23 Jun 2025
    Release notes

    Breaking Change(??): #[cold] in Item::attrs is now "#[attr = Cold]", instead of "#[cold]" (rust#142491).

    <a name="v0.49.0"></a>

    Open source →
  17. 0.49.0 23 Jun 2025
    Release notes

    Breaking Change(??): #[optimize(size)] in Item::attrs is now "#[attr = Optimize(Size)]", instead of "#[optimize(size)]" (rust#138291).

    <a name="v0.48.0"></a>

    Open source →
  18. 0.48.0 19 Jun 2025
    Release notes

    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.

    <a name="v0.46.1"></a>

    Open source →
  19. 0.46.1 05 Jun 2025
    Release notes

    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).

    <a name="v0.46.0"></a>

    Open source →
  20. 0.46.0 03 Jun 2025
    Release notes

    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).

    <a name="v0.41.0"></a>

    Open source →
  21. 0.41.0 20 Apr 2025
    Release notes

    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.

    <a name="v0.40.0"></a>

    Open source →
  22. 0.40.0 19 Apr 2025
    Release notes

    Breaking Change: Add Crate::target field with information about the target and its features (rust#139393).

    <a name="v0.39.0"></a>

    Open source →
  23. 0.39.0 25 Mar 2025
    Release notes

    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.

    <a name="v0.38.0"></a>

    Open source →
  24. 0.38.0 16 Mar 2025
    Release notes

    Breaking Change: Add variant GenericArgs::ReturnTypeNotation to support return type notation (rust#137956).

    <a name="v0.37.0"></a>

    Open source →
  25. 0.37.0 14 Mar 2025
    Release notes

    Breaking Change: Change GenericBound::Use from Vec<String> to Vec<PreciseCapturingArg>, a new enum (rust#138109).

    <a name="v0.36.0"></a>

    Open source →
  26. 0.36.0 26 Feb 2025
    Release notes

    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.

    <a name="v0.35.0"></a>

    Open source →
  27. 0.35.0 24 Jan 2025
    Release notes

    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).

    <a name="v0.34.0"></a>

    Open source →
  28. 0.34.0 15 Jan 2025
    Release notes

    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.

    <a name="v0.33.0"></a>

    Open source →
  29. 0.33.0 03 Dec 2024
    Release notes

    Breaking Change: Add new is_unsafe field in Static struct (rust#133715).

    <a name="v0.32.2"></a>

    Open source →
  30. 0.32.2 23 Oct 2024
    Release notes

    Library Improvement: ItemKind, TraitBoundModifier, and MacroKind all now implement Copy (rust#131976).

    <a name="v0.32.1"></a>

    Open source →
  31. 0.32.1 20 Oct 2024
    Release notes

    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).

    <a name="v0.32.0"></a>

    Open source →
  32. 0.32.0 17 Oct 2024
    Release notes

    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).

    <a name="v0.31.0"></a>

    Open source →
  33. 0.31.0 13 Oct 2024
    Release notes

    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).

    <a name="v0.30.0"></a>

    Open source →
  34. 0.30.0 13 Sep 2024
    Release notes

    Breaking Change: Many structs and fields have been renamed (rust#128667):

    • Import is now Use, to better reflect the syntax and the reference.
    • TypeBinding is now AssocItemConstraint, 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, TypeBindingKind is now AssocItemConstraintKind
      • bindings has been renamed to constraints on GenericArgs::AngleBracketed
    • ForeignType has been renamed to ExternType, 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::AssocConst and ItemEnum::AssocType's default field has been renamed to value, to clarify that they can appear in both an impl and trait item.
    • Header is now FunctionHeader, to be clearer what it is.
    • FnDecl is now FunctionSignature, as it's also used for FunctionPointer types (and not just function items).
      • decl field is now sig
    • Boolean fields are now is_ or has_ prefixed for clarity:
      • fields_stripped is now has_fields_stripped
      • variants_stripped is now has_stripped_variants
      • const_ is now is_const
      • async_ is now is_async
      • unsafe_ is now is_unsafe
      • synthetic is now is_synthetic
      • mutable is now is_mutable
      • c_variadic is now is_c_variadic
      • negative is now is_negative
      • glob is now is_glob

    <br/>

    <a name="v0.29.1"></a>

    Open source →
  35. 0.29.1 13 Aug 2024
    Release notes

    Documentation Improvements: Typo fixes (rust#128903, #29).

    <a name="v0.29.0"></a>

    Open source →
  36. 0.28.1 01 Aug 2024
    Release notes

    Documentation Improvements: The library is now (almost) entirely documented (rust#127290)!

    <a name="v0.28.0"></a>

    Open source →
  37. 0.28.0 18 Jul 2024
    Release notes

    Breaking Change: Add GenericBound::Use for the (currently unstable) precise_capturing feature (rust#127632).

    <a name="v0.27.0"></a>

    Open source →
  38. 0.27.0 04 Jul 2024
    Release notes

    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).

    <a name="v0.26.0"></a>

    Open source →
  39. 0.26.0 06 Jun 2024
    Release notes

    Breaking Change: Remove type_ from Constant, and add it to ItemEnum::Constant (rust#125958).

    Documentation Improvements: rust#125130, rust#124322.

    <a name="v0.25.0"></a>

    Open source →
  40. 0.25.0 19 Apr 2024
    Release notes

    Breaking Change: Add Type::Pat for unstable pattern types. (rust#120131)

    <a name="v0.24.0"></a>

    Open source →
  41. 0.24.0 24 Dec 2023
    Release notes

    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.

    <a name="v0.23.0"></a>

    Open source →
  42. 0.23.0 24 Aug 2023
    Release notes

    Breaking Change: Typedef has been renamed to TypeAlias, as this is what people (and the reference) generally call these items. (rust#115078)

    <a name="v0.22.0"></a>

    Open source →
  43. 0.22.0 23 May 2023
    Release notes

    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)

    <a name="v0.21.0"></a>

    Open source →
  44. 0.21.0 13 May 2023
    Release notes

    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)

    <a name="v0.20.0"></a>

    Open source →
  45. 0.20.0 03 Jan 2023
    Release notes

    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)

    <a name="v0.19.0"></a>

    Open source →
  46. 0.19.0 21 Nov 2022
    Release notes

    <a name="v0.18.0"></a>

    Open source →
  47. 0.18.0 27 Sep 2022
    Release notes

    <a name="v0.17.0"></a>

    Open source →
  48. 0.17.0 07 Sep 2022
    Release notes

    <a name="v0.16.0"></a>

    Open source →
  49. 0.16.0 07 Sep 2022
    Release notes

    <a name="v0.15.0"></a>

    Open source →
  50. 0.15.0 05 Sep 2022
    Release notes

    <a name="v0.14.0"></a>

    Open source →
  51. 0.14.0 15 Aug 2022
    Release notes

    <a name="v0.13.1"></a>

    Open source →
  52. 0.13.1 10 Aug 2022
    Release notes

    <a name="v0.13.0"></a>

    Open source →
  53. 0.13.0 09 Aug 2022
    Release notes

    <a name="v0.12.0"></a>

    Open source →
  54. 0.12.0 18 Jul 2022
    Release notes

    <a name="v0.11.0"></a>

    Open source →
  55. 0.11.0 18 May 2022
    Release notes

    <a name="v0.10.0"></a>

    Open source →
  56. 0.10.0 14 Mar 2022
    Release notes

    <a name="v0.9.0"></a>

    Open source →
  57. 0.9.0 12 Mar 2022
    Release notes

    <a name="v0.8.0"></a>

    Open source →
  58. 0.8.0 04 Mar 2022
    Release notes

    <a name="v0.7.0"></a>

    Open source →
  59. 0.7.0 24 Feb 2022
    Release notes

    <a name="v0.6.0"></a>

    Open source →
  60. 0.6.0 01 Feb 2022
    Release notes

    <a name="v0.5.0"></a>

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive