NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io, #653 most downloaded on crates.io
Derive macro for rkyv
Latest stable
0.8.18
Last release 3 months ago
05 Aug 2026
Release timing varies
gaps range from 9 days to 6 months
Most releases are documented
notes for 47 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
85 releases · first in 2020
Drag across the ruler to compare, or tap a release to open it.
This bugfix release corrects an issue with WriteSerializer where it would consider partial writes a success.
This bugfix release corrects an issue with WriteSerializer where it would consider partial writes a success.
Thanks to @Diomendius for the bug report.
This bugfix release addresses a few minor issues:
This bugfix release addresses a few minor issues:
ArchivedString::as_ref is now inlinedarchive_attr is used in combination with archive(as = "...") now spans the offending attribute for clarityThanks again to @Diomendius for reporting an issue.
Your coding agent can read these notes before it upgrades. Set up the MCP server →
This bugfix release fixes a minor issue with deserializing strings in certain configurations, deprecates #[archive(repr(...))] in favor of #[archive_a…
This bugfix release fixes a minor issue with deserializing strings in certain configurations, deprecates #[archive(repr(...))] in favor of #[archive_attr(repr(...))], and fixes support for using multiple repr arguments simultaneously (#184, i.e. repr(C, packed)).
Thanks to @Diomendius for reporting this bug!
This bugfix release fixes some tests that made assumptions about platform atomic support.
This bugfix release fixes some tests that made assumptions about platform atomic support.
This bugfix release contains the following changes:
This bugfix release contains the following changes:
AsVec wrapper for associative containersDebug impls for builtin types and improves existing onesArchivedString internals to allow other crates to use themThanks to everyone who filed issues and feature requests.
This bugfix release adds the new `AsOwned` wrapper type to allow users to serialize Cows and points URLs to the new github repo and book pages.
This bugfix release adds the new AsOwned wrapper type to allow users to serialize Cows and points URLs to the new github repo and book pages.
This bugfix release corrects some ArchiveCopySafe impls that were not marked unsafe. Thanks @PonasKovas for reporting the issue!
This bugfix release corrects some ArchiveCopySafe impls that were not marked unsafe. Thanks @PonasKovas for reporting the issue!
This bugfix releases fixes the tinyvec integration since the addition of scratch space. Thanks @Kixiron for reporting the issue!
This bugfix releases fixes the tinyvec integration since the addition of scratch space. Thanks @Kixiron for reporting the issue!
This bugfix release contains no code changes, but copies the license file into the individual crates and corrects an incorrect line ending for packagi
This bugfix release contains no code changes, but copies the license file into the individual crates and corrects an incorrect line ending for packaging on Fedora.
0.7 is the seventh major release of rkyv. This release focused on filling out rkyv's feature set and providing commonly-requested features. This is in
0.7 is the seventh major release of rkyv. This release focused on filling out rkyv's feature set and providing commonly-requested features. This is intended to be the final major feature release before stabilizing for 1.0.
rend crate.no_std validation. In many cases, the alloc crate will be required.no_std containers. In many cases, the alloc crate will be required.crate attribute to allow using rkyv from a different dependency name.resolve is now unsafe with proper safety documentation.#[with(...)].#[archive_attr(...)].#[archive(as = "...")].arbitrary_enum_discriminant feature.ArchiveCopy is now behind a feature and can automatically implement itself with a feature.Archive derives now support the repr argument.memoffset crate have been removed in favor of standard library alternatives.ArchivedHashMap to bring it closer in line with HashMap.BTreeMap and BTreeSet implementations optimized for IO.PathBuf has been added using the ToString wrapper.Mutex and RwLock has been added using the Lock wrapper.AtomicUsize and AtomicIsize has been added. Atomics now archive as non-atomic types by default. They can be archived as true atomics using the Atomic wrapper.CStr and CString has been added.Global allocator.indexmap crate with custom archived IndexMap and IndexSet implementations.uuid crate.tinyvec crate.Thanks to everyone who contributed by filing issues, providing implementations, and being active members of the discord. Special thanks to some of the especially active members:
This is a pre-release of 0.7. The changelist for 0.7 will be as follows:
This is a pre-release of 0.7. The changelist for 0.7 will be as follows:
0.7 is the seventh major release of rkyv. This release focused on filling out rkyv's feature set and providing commonly-requested features. This is intended to be the final major feature release before stabilizing for 1.0.
rend crate.no_std validation. In many cases, the alloc crate will be required.no_std containers. In many cases, the alloc crate will be required.crate attribute to allow using rkyv from a different dependency name.resolve is now unsafe with proper safety documentation.#[with(...)].#[archive_attr(...)].#[archive(as = "...")].arbitrary_enum_discriminant feature.ArchiveCopy is now behind a feature and can automatically implement itself with a feature.Archive derives now support the repr argument.memoffset crate have been removed in favor of standard library alternatives.ArchivedHashMap to bring it closer in line with HashMap.BTreeMap and BTreeSet implementations optimized for IO.PathBuf has been added using the ToString wrapper.Mutex and RwLock has been added using the Lock wrapper.AtomicUsize and AtomicIsize has been added. Atomics now archive as non-atomic types by default. They can be archived as true atomics using the Atomic wrapper.CStr and CString has been added.Global allocator.indexmap crate with custom archived IndexMap and IndexSet implementations.uuid crate.tinyvec crate.Thanks to everyone who contributed by filing issues, providing implementations, and being active members of the discord. Special thanks to some of the especially active members:
This is a pre-release of 0.7. The changelist for 0.7 will be as follows:
This is a pre-release of 0.7. The changelist for 0.7 will be as follows:
0.7 is the seventh major release of rkyv. This release focused on filling out rkyv's feature set and providing commonly-requested features. This is intended to be the final major feature release before stabilizing for 1.0.
rend crate.no_std validation. In many cases, the alloc crate will be required.no_std containers. In many cases, the alloc crate will be required.crate attribute to allow using rkyv from a different dependency name.resolve is now unsafe with proper safety documentation.#[with(...)].#[archive_attr(...)].#[archive(as = "...")].arbitrary_enum_discriminant feature.ArchiveCopy is now behind a feature and can automatically implement itself with a feature.Archive derives now support the repr argument.memoffset crate have been removed in favor of standard library alternatives.ArchivedHashMap to bring it closer in line with HashMap.BTreeMap and BTreeSet implementations optimized for IO.PathBuf has been added using the ToString wrapper.Mutex and RwLock has been added using the Lock wrapper.CStr and CString has been added.Global allocator.indexmap crate with custom archived IndexMap and IndexSet implementations.uuid crate.tinyvec crate.Thanks to everyone who contributed by filing issues, providing implementations, and being active members of the discord. Special thanks to some of the especially active members:
This bugfix release fixes the following issues:
This bugfix release fixes the following issues:
std is no longer pulled in by an updated ptr_metaSerialize and Deserialize now explicitly use ::core::result::Result to prevent local Result types from breaking the derives (thanks @adaszko!)no_std builds with specialization now function correctly again (thanks @PiDelport!)Thanks to everyone who contributed fixes and filed issues!
0.6.3 is a bugfix release that fixes deriving traits for structs with const generic parameters and adds some helper functions for AlignedVec to conver
0.6.3 is a bugfix release that fixes deriving traits for structs with const generic parameters and adds some helper functions for AlignedVec to convert it to Vec (#111).
This minor release addresses a security flaw that leaked uninitialized memory through struct padding. The fix required an API change for resolving, bu
This minor release addresses a security flaw that leaked uninitialized memory through struct padding. The fix required an API change for resolving, but should have no performance impacts. Thanks to @as-com for reporting the issue.
Note that ArchiveCopy types may still leak uninitialized memory in their padding bytes, and should be avoided on types that contain large blocks of padding. In practice, this is usually only an issue for enums. You can still use these types safely by removing #[archive(copy)].
This minor release provides more flexible serialization for BufferSerializer and adds `AlignedSerializer`, a new higher-performance serializer. It als
This minor release provides more flexible serialization for BufferSerializer and adds AlignedSerializer, a new higher-performance serializer. It also cleans up some documentation and moves a few things around for tidiness.
Version 0.5 brings bugfixes, ergonomics improvements, and new features:
Version 0.5 brings bugfixes, ergonomics improvements, and new features:
#[archive(bound(serialize = "...", deserialize = "..."))]unreachable! to unreachable_unchecked should give a few small performance gainsPartialEq and PartialOrd can now be implemented between original and archived types with #[archive(compare(PartialEq, PartialOrd))]const_generics default featureThanks to everyone who provided suggestions and pull requests!
This release changes some major APIs and adds shared pointer support:
This release changes some major APIs and adds shared pointer support:
#32 Introduces new context traits in place of the previous context struct. #33 Allows serialization parameterization over the type of the serializer, allowing users to choose the complexity of their serializers and create their own. #34 Renames Unarchive to Deserialize. #35 Splits Archive into Serialize to allow a clean hierarchy while still enabling parameterization. #39 Removes the Resolve trait and simplifies the API. #37 Performed some cleanup on the rkyv_dyn API. #36 Added shared and weak pointer support. #41 Added validation support for shared and weak pointers. #40 Added deserialization contexts to match serialization and verification contexts. #47 Introduced Serializers and Deserializers. #42 Added an attribute to rename the resolver type for archived values. #51 Fixed a performance regression. #45 Updated and greatly improved the book's documentation. #59 Introduced the ptr_meta crate and vastly reduced the number of dangerous transmutations. #56 Added archive implementations for usize and isize. #55 Made the support for 32/64-bit much more uniform and consistent.
Thanks to everyone who contributed by asking questions, filing issues, and making feature requests.
This bugfix corrects atomic implementations for embedded systems and untangles some dev dependencies that made it difficult to publish crates.
This bugfix corrects atomic implementations for embedded systems and untangles some dev dependencies that made it difficult to publish crates.
Bugs fixed:
v0.3.0 changes a few major APIs, adds new features, simplifies the framework, and adds lots of documentation:
v0.3.0 changes a few major APIs, adds new features, simplifies the framework, and adds lots of documentation:
Unarchive trait with counterparts for unsized types and trait objects. Unarchive is a direct replacement for deserialization and converts archived types back into their unarchived forms.WriteExt and SeekExt and folds their functionality into Write and Seek respectively.#[archive(copy)] and #[archive(name = "...")] or #[archive(derive(...))].ArchiveSelf to ArchiveCopy and SelfResolver to CopyResolver. The derive argument is now #[archive(copy)].v0.2.1 adds some small new features and fixes a handful of bugs:
v0.2.1 adds some small new features and fixes a handful of bugs:
strict feature, all archived types will be #[repr(C)]. This is probably unnecessary except for the extra cautious.Seek trait has been added, along with the archive_root helper. This allows archiving the root object at position 0 in the archive, which is useful for self-describing formats like files and messages.The next release will be v0.2.1 with any bugfixes and non-breaking changes.
This is a major feature release, adding a wide variety of new features and plugging some existing holes:
#7 Relative pointers now have 64-bit support through the long_rel_ptrs feature.
#8 Mutable archives can now be created and mutated through pinned references.
#11, #16 bytecheck support has been added, allowing for archive validation. Bytecheck is built with the explicit goal of validating untrusted and potentially malicious data.
#12 The core and std archived types are now exposed and documented.
#13 Duplicate impls now provide a much more friendly error message to help you track down the problem.
#15 Recursive data structures can now be archived properly with use of the #[recursive] attribute on recursive fields.
The next release will be v0.2.1 with any bugfixes and non-breaking changes.
This is a bugfix release to address issues discovered after the previous release and minor feature shortcomings:
This is a bugfix release to address issues discovered after the previous release and minor feature shortcomings:
#2 Crates with no_std support need #![no_std] #3 Examples allow buffer mutation after archiving #4 Archived fields don't match the visibility of their unarchived counterparts #5 Doesn't compile on rustc < 1.47
Actions have also been set up for the repo to automatically build and run tests.
Nothing published for this version
Nothing published for this version
One column per quarter.