Skip to content

Releases: rkyv/rkyv

0.8.8

18 Sep 16:28
Compare
Choose a tag to compare
  • Fixes auto copy optimization referring to generated types with as = ...

Full Changelog: 0.8.7...0.8.8

0.8.7

18 Sep 03:53
Compare
Choose a tag to compare
  • Removes an unused lifetime from the high- and low-level API serializer types.

Full Changelog: 0.8.6...0.8.7

0.8.6

18 Sep 03:51
Compare
Choose a tag to compare

What's Changed

  • Derive Default, Eq, Hash, Ord, PartialEq, and PartialOrd for ArchivedTuple* by @evie-calico in #556

New Contributors

Full Changelog: 0.8.5...0.8.6

0.8.5

16 Sep 22:41
Compare
Choose a tag to compare

This bugfix release only includes performance optimizations.

Full Changelog: 0.8.4...0.8.5

0.8.4

16 Sep 14:18
Compare
Choose a tag to compare

What's Changed

  • Support missing enum variants on remote derives by @MaxOhn in #553
  • Removed a stale reference to ArchivedAlignedVec
  • Fixed a panic caused by serializing hashmaps of large elements
  • Reduced branching when writing inline strings (~15% ser improvement on log benchmark)

Full Changelog: 0.8.3...0.8.4

0.8.3

14 Sep 04:19
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.8.2...0.8.3

0.8.2

13 Sep 15:10
Compare
Choose a tag to compare

This bugfix release addresses the following issues:

  • #548 Makes the AsVec wrapper compatible with any choice of hasher
  • #549 Access pointer validation fails for nested HashMaps

0.8.1

12 Sep 03:36
Compare
Choose a tag to compare

This bugfix release corrects an infinite loop in hash map probing.

0.8.0

11 Sep 06:03
Compare
Choose a tag to compare

It's finally here! A ton of stuff has changed, so here are some highlights:

  • API free functions are now more ergonomic and consistently-named. See to_bytes, from_bytes, access, and everything else!
  • rkyv now provides separate "API levels" for high-level Rust code and low-level Rust code.
  • Error handling has been completely overhauled with the introduction of rancor. Validation, serialization, and deserialization all now accept error type parameters so you can choose how you want errors to accumulate.
  • rkyv now supports remote derive! Read all about it in the book.
  • Unaligned primitives are now supported via the unaligned feature. If you choose, no more worrying about buffer alignment!
  • Native endianness is no more. rkyv now defaults to little-endian, aligned, and 32-bit relative pointers. Use the format control features to change them if you want.
  • A few semver-affecting soundness issues have been fixed. rkyv should now really truly and always generate cross-platform buffers.
  • The archived hash map and b-tree map implementations have been overhauled for better space-efficiency and performance.
  • Macro attributes have been overhauled to make them significantly more cohesive and ergonomic.
  • rkyv's mutable API has been overhauled for improved soundness and ease of use.
  • rkyv's internal APIs have been overhauled for improved ease of use.
  • Many serialization and deserialization types and traits have been renamed for shortness and clarity.
  • Copy optimizations are now stable for many basic primitive types.
  • The Most Unhelpful Error no longer occurs (the compiler mentions With<_, _> when you try to deserialize)
  • AlignedVec now supports custom alignments
  • No more strict feature, rkyv is always in strict mode now
  • Lots and lots and lots of tech debt cleanup

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

0.8.0-rc.1

02 Sep 02:25
Compare
Choose a tag to compare
0.8.0-rc.1 Pre-release
Pre-release

This is the first release candidate for rkyv 0.8.0.