NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io
crates.io, #658 most downloaded on crates.io
Zero-copy deserialization framework for Rust
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
95 releases · first in 2020
Drag across the ruler to compare, or tap a release to open it.
This project publishes no release notes. Between 0.8.17 and 0.8.18 there were 3 commits, 2 of them substantive:
This project publishes no release notes. Between 0.8.17 and 0.8.18 there were 3 commits, 2 of them substantive:
This project publishes no release notes. Between 0.8.16 and 0.8.17 there were 16 commits, 15 of them substantive:
This project publishes no release notes. Between 0.8.16 and 0.8.17 there were 16 commits, 15 of them substantive:
leak for AlignedVec (#675)Your coding agent can read these notes before it upgrades. Set up the MCP server →
This project publishes no release notes. Between 0.8.15 and 0.8.16 there were 8 commits, 7 of them substantive:
This project publishes no release notes. Between 0.8.15 and 0.8.16 there were 8 commits, 7 of them substantive:
into_parts and from_parts for AlignedVec (#653)NoUndef for [T] where T: NoUndef. (#656)Ord bound on MapKV implclear() impls against panicking dropsThis project publishes no release notes. Between 0.8.14 and 0.8.15 there were 4 commits, 3 of them substantive:
This project publishes no release notes. Between 0.8.14 and 0.8.15 there were 4 commits, 3 of them substantive:
This project publishes no release notes. Between 0.8.13 and 0.8.14 there were 2 commits, 1 of them substantive:
This project publishes no release notes. Between 0.8.13 and 0.8.14 there were 2 commits, 1 of them substantive:
This project publishes no release notes. Between 0.8.12 and 0.8.13 there were 10 commits, 9 of them substantive:
This project publishes no release notes. Between 0.8.12 and 0.8.13 there were 10 commits, 9 of them substantive:
ArchivedType goes to Type (#640)This project publishes no release notes. Between 0.8.11 and 0.8.12 there were 8 commits, 7 of them substantive:
This project publishes no release notes. Between 0.8.11 and 0.8.12 there were 8 commits, 7 of them substantive:
This project publishes no release notes. Between 0.8.10 and 0.8.11 there were 13 commits, 12 of them substantive:
This project publishes no release notes. Between 0.8.10 and 0.8.11 there were 13 commits, 12 of them substantive:
BTreeSet (#613)This project publishes no release notes. Between 0.8.9 and 0.8.10 there were 9 commits, 7 of them substantive:
This project publishes no release notes. Between 0.8.9 and 0.8.10 there were 9 commits, 7 of them substantive:
Nothing published for this version
Fixes auto copy optimization referring to generated types with as = ...
as = ...Full Changelog: https://github.com/rkyv/rkyv/compare/0.8.7...0.8.8
Removes an unused lifetime from the high- and low-level API serializer types.
Full Changelog: https://github.com/rkyv/rkyv/compare/0.8.6...0.8.7
Derive Default, Eq, Hash, Ord, PartialEq, and PartialOrd for ArchivedTuple* by @evie-calico in https://github.com/rkyv/rkyv/pull/556
Full Changelog: https://github.com/rkyv/rkyv/compare/0.8.5...0.8.6
This bugfix release only includes performance optimizations.
This bugfix release only includes performance optimizations.
Full Changelog: https://github.com/rkyv/rkyv/compare/0.8.4...0.8.5
Support missing enum variants on remote derives by @MaxOhn in https://github.com/rkyv/rkyv/pull/553
ArchivedAlignedVecFull Changelog: https://github.com/rkyv/rkyv/compare/0.8.3...0.8.4
fix: minimum syn version by @xJonathanLEI in https://github.com/rkyv/rkyv/pull/550
syn version by @xJonathanLEI in https://github.com/rkyv/rkyv/pull/550Full Changelog: https://github.com/rkyv/rkyv/compare/0.8.2...0.8.3
This bugfix release addresses the following issues:
This bugfix release addresses the following issues:
AsVec wrapper compatible with any choice of hasherHashMapsThis bugfix release corrects an infinite loop in hash map probing.
This bugfix release corrects an infinite loop in hash map probing.
It's finally here! A ton of stuff has changed, so here are some highlights:
It's finally here! A ton of stuff has changed, so here are some highlights:
to_bytes, from_bytes, access, and everything else!unaligned feature. If you choose, no more worrying about buffer alignment!With<_, _> when you try to deserialize)AlignedVec now supports custom alignmentsstrict feature, rkyv is always in strict mode now... and much more! Try it out yourself after I release this new version on-stage at RustConf.
Reminder: this is a major version bump, and data previously serialized with rkyv 0.7 or below will not be compatible with 0.8. Any data you serialize in 0.8 is guaranteed to be compatible for the lifetime of the 0.8 releases.
Nothing published for this version
This is the first release candidate for rkyv 0.8.0.
This is the first release candidate for rkyv 0.8.0.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This bugfix release closes a number of issues:
This bugfix release closes a number of issues:
with_capacity constructor for SharedSerializeMap, SharedDeserializeMap, DefaultValidator, and SharedValidator (#432)tinyvec/alloc feature cfg and docs (#428)Entry API to avoid double hash lookups (#426)HashMap/HashSet data on deserialize (#427)VecDeque (#414)smol_str support (#411)Option and Result (#413)Bytes suport (#408)Thanks to everyone who helped contribute to this release: @gz, @monoid, @b8591340, @alvra, @blp, @al8n, @cholcombe973, and @FallingSnow.
This bugfix release closes a number of issues:
This bugfix release closes a number of issues:
BufferScratch to be !Syncuuid and fixed some feature unification problems?Sized bound on some wrapper type implsSized bound for the inherent TypeName implIt also resolves an issue when validating tuples by upgrading rkyv's bytecheck version to 0.6.11.
Thanks to @c410-f3r, @mkatychev, @ChillFish8, and @edfraenkel for their hard work!
This bugfix release includes a number of additions and fixes:
This bugfix release includes a number of additions and fixes:
PartialOrd<&str> and PartialOrd<String> impls for ArchivedStringFrom<T> impl for ArchivedOption<T>AlignedVecSend impls on BufferScratch#[archive(check_bytes)] attribute to derive CheckBytes with rkyv's supported bytecheck version. See the new examples for more details.Additionally, rkyv's test suites once again pass MIRI under the new tree borrows model. You can test your own code that uses rkyv for undefined behavior by enabling tree borrows on your own projects.
Thanks to @mkatychev, @Qqwy, @brahms116, @myronahn, @overlookmotel, @samlich, @freqmod, and @MaxOhn for their contributions to this release!
This bugfix release includes a number of additions and fixes:
This bugfix release includes a number of additions and fixes:
Archive and Serialize for AlignedBytes and AlignedVecresize function to AlignedVecbitvec crateArchivedString is always marked as !UnpinIndexMap and IndexSet over a State type parameterout_field!from_raw_parts methods for RelPtr and ArchivedBoxarrayvec crateLayoutErrors during validationArchivedHashMapreserve_exact(1) on an AlignedVecbytecheck::CheckBytes from rkyvManuallyDrop<T> now implements rkyv's traitsThanks to all of the contributors who helped make this release possible!
Fixes some places in the Archive derive macro that was using ::rkyv as the crate path instead of a path provided through #[archive(crate = "...")].
alloc and realloc.Archive derive macro that was using ::rkyv as the crate path instead of a path provided through #[archive(crate = "...")].Thanks to @robinhundt for filing an issue!
Thanks to everyone who contributed issues and PRs!
Map wrapper (thanks to @zyansheep)DeserializeWith impls for the AsBox and Raw wrapper typesCStr and CStringSkip wrapper to skip serializing fieldsuuid crate to 1.0 (thanks to @Dylan-DPC)Thanks to everyone who contributed issues and PRs!
This bugfix release properly gates Arc support behind the has_atomics flag to fix rkyv on thumbv6m-none-eabi and other platforms without atomics suppo
This bugfix release properly gates Arc support behind the has_atomics flag to fix rkyv on thumbv6m-none-eabi and other platforms without atomics support running under no_std.
Thanks to @moosingin3space for the bug report.
This bugfix release introduces the Unsafe wrapper type for serializing and deserializing Cell and UnsafeCell.
This bugfix release introduces the Unsafe wrapper type for serializing and deserializing Cell and UnsafeCell.
This bugfix release corrects documentation on AlignedVec::into_boxed_slice that was not correctly updated with the previous release.
This bugfix release corrects documentation on AlignedVec::into_boxed_slice that was not correctly updated with the previous release.
Thanks to @ralfjung for spotting the issue.
This bugfix release corrects some minor potential UB in AlignedVec::into_boxed_slice. It is a second location of a similar issue patched in 0.7.29.
This bugfix release corrects some minor potential UB in AlignedVec::into_boxed_slice. It is a second location of a similar issue patched in 0.7.29.
Thanks to @saethlin for identifying and reporting the issue securely.
This bugfix release corrects macro hygiene when using the derive macros inside of a macro_rules! context (#252).
This bugfix release corrects macro hygiene when using the derive macros inside of a macro_rules! context (#252).
Thanks to @DarrenTsung for reporting the issue.
This bugfix release addresses the following issues:
This bugfix release addresses the following issues:
Raw wrapper for maximum ser/de and validation performance on raw bytesPartialEq for ArchivedDuration (#247)hashbrown support to 0.12 (#248)Thanks everyone who reported issues and to @petar-dambovaliev and @kastolars for filing pull requests!
This bugfix release extends Send and Sync impls to a few more types.
This bugfix release extends Send and Sync impls to a few more types.
Thanks to @nagisa for filing an issue!
This bugfix release addresses the following issues:
This bugfix release addresses the following issues:
#[with(Niche)] on Option<NonZero*> fields will only use as much space as the underlying integer type while archived.SystemTime can now be serialized and deserialized using #[with(UnixTimestamp)], which converts the time to a duration since the UNIX epoch.SharedSerializeMapError has been made Send and Sync.#[archive(...)] and #[archive_attr(...)] will now properly error. Previously, malformed arguments caused the attribute to be silently ignored.Thanks to @nagisa, @seritools, @kassens, and @ok-nick for reporting issues and filing feature requests.
This bugfix release addresses the following issues:
This bugfix release addresses the following issues:
BTreeMap as a struct member in certain situations (#239)AlignedVec::into_vec when the resulting Vec is droppedThanks to @Jasper-Bekkers for filing an issue!
This bugfix release removes doctest dependencies on the validation feature.
This bugfix release removes doctest dependencies on the validation feature.
Thanks to @remilauzier for filing an issue!
0.7.27 is a bugfix release that fixes some issues and adds a few new features:
0.7.27 is a bugfix release that fixes some issues and adds a few new features:
hashbrown crate. This allows users to archive hash maps and hash sets without also needing std.to_bytes, from_bytes_unchecked, and from_bytes. These are utility functions to make working with serialization and deserialization easier, but may not provide the best possible performance for individual cases.HeapScratch struct can now be used with const parameter N=0.Thanks to @Miaxos for feature requests and a PR!
This bugfix release adds validation support for indexmap types. Thanks to @nagisa for the feature request.
This bugfix release adds validation support for indexmap types. Thanks to @nagisa for the feature request.
This bugfix release improves atomics support detection to provide atomics support to more targets.
This bugfix release improves atomics support detection to provide atomics support to more targets.
Thanks to @tobz for the PR.
This bugfix release fixes #227 by removing the custom pad impl for BufferSerializer. This will cause the serializer to always write zeroes to padding
This bugfix release fixes #227 by removing the custom pad impl for BufferSerializer. This will cause the serializer to always write zeroes to padding to avoid surprises when reusing buffer memory. Thanks to @Diomendius for reporting an issue.
0.7.23 is a bugfix release that fixes some unused code warnings on platforms without atomic support.
0.7.23 is a bugfix release that fixes some unused code warnings on platforms without atomic support.
This bugfix release improves the documentation for generated types. Thanks to @dvc94ch for the suggestion!
This bugfix release improves the documentation for generated types. Thanks to @dvc94ch for the suggestion!
This bugfix release fixes #223 by expanding the CopyOptimize wrapper to support boxed slices. You can now do:
This bugfix release fixes #223 by expanding the CopyOptimize wrapper to support boxed slices. You can now do:
#[derive(Archive, Serialize)]
pub struct Example<'a> {
#[with(CopyOptimize, RefAsBox)]
slice: &'a [u32],
}
and serialize a field as a box with copy optimization. Thanks to @tobz for the feature request.
rkyv 0.7.20 is a bugfix release that addresses the following issues:
rkyv 0.7.20 is a bugfix release that addresses the following issues:
AsBox and RefAsBox wrappers.CopyOptimize wrapper. Please read the safety documentation carefully.Thanks to everyone who filed issues and made feature requests.
rkyv 0.7.19 is a bugfix release that addresses the following issues:
rkyv 0.7.19 is a bugfix release that addresses the following issues:
smallvec crateBTreeMapsThanks to everyone who filed issues and made feature requests.
rkyv 0.7.18 addresses a deficiency in the bounds(...) argument to the archive attribute. Bounds can now be provided for the Archive, Serialize, and De
rkyv 0.7.18 addresses a deficiency in the bounds(...) argument to the archive attribute. Bounds can now be provided for the Archive, Serialize, and Deserialize traits individually.
rkyv 0.7.17 adds the new `Niche` wrapper, which allows fields of the form Option > to use less space.
rkyv 0.7.17 adds the new Niche wrapper, which allows fields of the form Option<Box<T>> to use less space.
rkyv 0.7.16 extends support to rend types and adds a compile error when multiple mutually exclusive features are active.
rkyv 0.7.16 extends support to rend types and adds a compile error when multiple mutually exclusive features are active.
This release also contains rkyv_dyn 0.7.6, which fixes a few things that broke during rkyv's evolution.
Thanks to @b8591340 especially for filing issues and PRs.
This bugfix release extends HashSet support to hash sets with custom hashers. Thanks to @mustafa-guler for the PR!
This bugfix release extends HashSet support to hash sets with custom hashers. Thanks to @mustafa-guler for the PR!
This bugfix release implements DoubleEndedIterator for the Option and Result iterators (#191, thanks @l4l for providing a PR) and fixes raw identifier
This bugfix release implements DoubleEndedIterator for the Option and Result iterators (#191, thanks @l4l for providing a PR) and fixes raw identifier support (#191, thanks @dovahcrow for reporting the issue).
This bugfix release fixes a panic related to buffers that are undersized for root objects. Thanks to @krl for reporting the issue.
This bugfix release fixes a panic related to buffers that are undersized for root objects. Thanks to @krl for reporting the issue.
This bugfix release address the following issues:
This bugfix release address the following issues:
Self type is now properly supported while deriving implementations for Archive, Serialize, and Deserialize.ArchivedResult type has been added, enabling support for archiving Result.Thanks to @krl for filing issues!
This bugfix release fixes a panic while archiving and accessing empty BTreeMaps.
This bugfix release fixes a panic while archiving and accessing empty BTreeMaps.
Thanks to @ianoc for the bug report and unit test!
One column per quarter.