NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #197 most downloaded on crates.io
Implementation detail of the `pin-project` crate.
Last release 4 months ago
13 May 2026
Release timing varies
gaps range from 8 days to 12 months
Nearly every release is documented
notes for 58 of 58 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
71 releases · first in 2019
[Change #[pinned_drop] to trait implementation.]
Change #[pinned_drop] to trait implementation.
#[pinned_drop]
impl<T> PinnedDrop for Foo<'_, T> {
fn drop(mut self: Pin<&mut Self>) {
**self.project().was_dropped = true;
}
}
Add some examples and generated code.
Diagnostic improvements.
[#[pin_project] can now interoperate with #[cfg()].]
Documentation improvements.
One column per quarter.
[Add project_into method to #[pin_project] types](https://github.com/taiki-e/pin-project/pull/69). This can be useful when returning a pin projection
Add project_into method to #[pin_project] types. This can be useful when returning a pin projection from a method.
fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut T> {
self.project_into().pinned
}
Prevent UnpinStruct from appearing in the document by default. See #71 for more details.
Improve document of generated code.. Also added an option to control the document of generated code. See #62 for more details.
Improve document of generated code.. Also added an option to control the document of generated code. See #62 for more details.
Suppress `dead_code` lint in generated types.
[Allow using #[pin_project] type with private field types]
[#[project] attribute now supports match expressions at the position of the initializer expression of let expressions.]
Suppress clippy::drop_bounds lint in generated code.
clippy::drop_bounds lint in generated code.[Change project method generated by #[pin_project] attribute to take an &mut Pin<&mut Self> argument.]
Update proc-macro2, syn, and quote to 1.0.
proc-macro2, syn, and quote to 1.0.Pin projection has become a safe operation.
Pin projection has become a safe operation.
#[unsafe_project] has been replaced with #[pin_project].
The Unpin argument has been removed - an Unpin impl is now generated by default.
Drop impls must be specified with #[pinned_drop] instead of via a normal Drop impl.
Unpin impls must be specified with an impl of UnsafeUnpin, instead of implementing the normal Unpin trait.
Make #[project] attribute disabled by default.
See also tracking issue for 0.4 release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →