PackageTrack
Sign in Get early access

pin-project-lite

A lightweight version of pin-project written with declarative macros.

0.2.17 949M downloads/mo #52 most downloaded on crates.io taiki-e/pin-project-lite

What this package is like to depend on

Last release 5 months ago

27 Feb 2026

Release timing varies

gaps range from 3 weeks to 1.2 years

Nearly every release is documented

notes for 14 of 14 stable releases

17 versions withdrawn

withdrawn after publishing

7 years old

31 releases · first in 2019

1 release in the last 12 months

see the full history below

Release timeline

31 releases · Oct 2019 to Feb 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 31
  1. 0.2.17 27 Feb 2026
    Release notes Open source →
    Release notes Open source →
  2. 0.2.16 06 Jan 2025
    Release notes
    • Suppress clippy::absolute_paths, clippy::min_ident_chars, and clippy::single_char_lifetime_names lints in generated code.
    Open source →
    Release notes
    • Suppress clippy::absolute_paths, clippy::min_ident_chars, and clippy::single_char_lifetime_names lints in generated code.
    Open source →
  3. 0.2.15 24 Oct 2024
    Release notes
    • Work around an issue on negative_impls that allows unsound overlapping Unpin implementations. (#84)
    Open source →
    Release notes
    • Work around an issue on negative_impls that allows unsound overlapping Unpin implementations. (#84)
    Open source →
  4. 0.2.14 29 Mar 2024
    Release notes
    • Document PinnedDrop. (#83, thanks @jbr)
    Open source →
    Release notes
    • Document PinnedDrop. (#83, thanks @jbr)
    Open source →
  5. 0.2.13 25 Aug 2023
    Release notes
    • Allow attributes in impl and method of PinnedDrop implementation.
    Open source →
    Release notes
    • Allow attributes in impl and method of PinnedDrop implementation.
    Open source →
  6. 0.2.12 09 Aug 2023
    Release notes
    • Work around an issue where the projected types/methods appear in the documentation as if they were part of the public API if the visibility is not correctly parsed due to the rustc bug. See #77 for details.
    Open source →
    Release notes
    • Work around an issue where the projected types/methods appear in the documentation as if they were part of the public API if the visibility is not correctly parsed due to the rustc bug. See #77 for details.
    Open source →
  7. 0.2.11 06 Aug 2023
    Release notes
    Open source →
    Release notes
    • Add support for #[project(!Unpin)]. This is equivalent to pin-project's !Unpin option. (#76, thanks @matheus-consoli)
    Open source →
  8. 0.2.10 02 Jul 2023
    Release notes
    Open source →
    Release notes
    • Inline project methods. (#74, thanks @EFanZh)
    Open source →
  9. 0.2.9 26 Apr 2022
    Release notes
    Open source →
    Release notes
    • Improve compile time of pin_project! calls. (#71, thanks @nnethercote)
    Open source →
  10. 0.2.8 31 Dec 2021
    Release notes
    Open source →
    Release notes
    • Fix handling of trailing commas in PinnedDrop impl. (#64, thanks @Michael-J-Ward)
    Open source →
  11. 0.2.7 26 Jun 2021
    Release notes Open source →
  12. 0.2.6 04 Mar 2021
    Release notes
    • Support item attributes in any order. (#57, thanks @SabrinaJewson)
    Open source →
  13. 0.2.5 02 Mar 2021
    Release notes Open source →
  14. 0.2.4 11 Jan 2021 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    • Add project_replace. (#43, thanks @Marwes)
    Open source →
  15. 0.2.3 09 Jan 2021 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  16. 0.2.2 09 Jan 2021 withdrawn
    Release notes

    Note: This release has been yanked.** See #55 for details.

    Open source →
  17. 0.2.1 05 Jan 2021 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    • Exclude unneeded files from crates.io.
    Open source →
  18. 0.2.0 13 Nov 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    • pin_project! macro now supports enums.

      To use pin_project! on enums, you need to name the projection type returned from the method.

      use pin_project_lite::pin_project;
      use std::pin::Pin;
      
      pin_project! {
          #[project = EnumProj]
          enum Enum<T, U> {
              Variant { #[pin] pinned: T, unpinned: U },
          }
      }
      
      impl<T, U> Enum<T, U> {
          fn method(self: Pin<&mut Self>) {
              match self.project() {
                  EnumProj::Variant { pinned, unpinned } => {
                      let _: Pin<&mut T> = pinned;
                      let _: &mut U = unpinned;
                  }
              }
          }
      }
      
    • Support naming the projection types.

      By passing an attribute with the same name as the method, you can name the projection type returned from the method:

      use pin_project_lite::pin_project;
      use std::pin::Pin;
      
      pin_project! {
          #[project = StructProj]
          struct Struct<T> {
              #[pin]
              field: T,
          }
      }
      
      fn func<T>(x: Pin<&mut Struct<T>>) {
          let StructProj { field } = x.project();
          let _: Pin<&mut T> = field;
      }
      
    Open source →
  19. 0.1.12 02 Mar 2021
    Release notes Open source →
  20. 0.1.11 20 Oct 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    • Suppress clippy::redundant_pub_crate lint in generated code.

    • Documentation improvements.

    Open source →
  21. 0.1.10 01 Oct 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    • Suppress drop_bounds lint, which will be added to rustc in the future. See taiki-e/pin-project#272 for more details.
    Open source →
  22. 0.1.9 29 Sep 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  23. 0.1.8 26 Sep 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  24. 0.1.7 04 Jun 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  25. 0.1.6 31 May 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  26. 0.1.5 07 May 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  27. 0.1.4 20 Jan 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  28. 0.1.3 20 Jan 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Open source →
  29. 0.1.2 05 Jan 2020 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    • Support recognizing default generic parameters. (#6, thanks @kennytm)
    Open source →
  30. 0.1.1 15 Nov 2019 withdrawn
    Release notes Open source →
  31. 0.1.0 22 Oct 2019 withdrawn
    Release notes

    Note: This release has been yanked. See #55 for details.

    Initial release

    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