Skip to content

Releases: vigna/epserde-rs

0.11.5

19 Dec 10:06

Choose a tag to compare

[0.11.5]

Changed

  • Removed dependency on maligned. The internal types Aligned16 and
    Aligned64 have been reimplemented directly in this crate.

0.11.4

03 Nov 09:18

Choose a tag to compare

[0.11.4] - 2025-11-03

  • Added missing TypeHash implementations for references to str and slices.

  • Added support for std::hash::DefaultHash and
    core::hash::BuildHasherDefault.

  • Removed useless lifetime from SerIter.

0.11.3

21 Oct 11:57

Choose a tag to compare

[0.11.3] - 2025-10-21

Fixed

  • Fixed mmap dependency to 0.6.

[0.11.2] - 2025-10-21

Fixed

  • Added missing CopyType to &str and references to slices.

  • Relaxed mmap dependency to >= 0.6, <= 0.7.

0.11.1

16 Oct 09:37

Choose a tag to compare

[0.11.1] - 2025-10-16

Changed

  • Updated mmap dependency.

0.11.0

15 Oct 16:03

Choose a tag to compare

[0.11.0] - 2025-10-03

New

  • Thanks to const blocks, the previous runtime check for a deep-type type being
    a candidate for zero-copy is now a static assertion. This is a significant
    improvement, but it requires a major release as previous code might not
    compile anymore.

0.10.4

30 Sep 08:43

Choose a tag to compare

Change Log

[0.10.4] - 2025-09-30

New

  • The attributes zero_copy and deep_copy were dangerously commonly named,
    and they have been replaced by epserde_zero_copy and epserde_deep_copy.
    The old names are still supported but deprecated, and will be removed in a
    future release. There are deprecation warnings, but unfortunately for the time
    being they will only appear on nightly.

Changed

  • Revamped examples; new schema feature for enabling schema printing.

0.10.3

26 Sep 14:39

Choose a tag to compare

[0.10.3] - 2025-09-26

Fixed

  • Removed usage of is_multiple_of.

0.10.2

26 Sep 14:07

Choose a tag to compare

[0.10.2] - 2025-09-26

Fixed

  • Restored previous type hash of string (only for use with PhantomData).

  • Added back previous type hashes for str and [T] for use with
    PhantomData.

  • Revised bound propagation (again).

  • Renamed MaxSizeOf to AlignTo as it includes results from
    std::mem::align_of.

Changed

  • The indices of ranges and bounds from the standard library can now be
    deep-copy.

0.10.1

25 Sep 16:02

Choose a tag to compare

[0.10.1] - 2025-09-25

Fixed

  • Fixed type hash of strings.

0.10.0

25 Sep 14:40

Choose a tag to compare

Change Log

[0.10.0] - 2025-09-25

New

  • New delegations of standard-library traits to MemCase; in particular,
    AsRef and Deref are back, but with a slightly different semantics, as
    the implementation Deref for MemCase<S> has target
    S::DeserType<_>::Target, and analogously for AsRef.

  • New strategy for MemCase::encase, which uses a transparent wrapper Owned
    to bring back the original functionality.

  • New SerType type alias, analogous to DeserType.

  • Major internal code restructuring: TypeHash/AlignHash/MaxSizeOf are now
    computed on the serialization type, not on the serializable type.

  • New convenience serialization implementation for &str, in the same vain as
    that for &[T].

Changed

  • Major disruptive change: vectors and boxed slices have now the same
    serialization type. This makes them interchangeable at will in
    (de)serialization, which is an extremely useful feature. Unfortunately, old
    instances with replaceable type parameters whose concrete type is a vector
    will no longer be deserializable. The same happens for String and
    Box<str>.

  • CopyType is now unsafe as there is no way to check a type contains
    no references.

  • repr attributes are now sorted lexicographically. This change was
    necessary as the order of such attributes is irrelevant, but it might make
    impossible to deserialize old instances whose type specifies repr attributes
    in a different order.

  • A few TypeHash/AlignHash implementation that were not really necessary
    have been removed.

Fixed

  • The nostd feature now works.