PackageTrack
Sign in Get early access

bytemuck

A crate for mucking around with piles of bytes.

1.25.2 340M downloads/mo #329 most downloaded on crates.io Lokathor/bytemuck

What this package is like to depend on

Last release 1 months ago

19 Jul 2026

Ships fairly regularly

a new release about every 2 months

Most releases are documented

notes for 25 of 38 stable releases

19 versions withdrawn

withdrawn after publishing

7 years old

58 releases · first in 2019

4 releases in the last 12 months

see the full history below

Release timeline

58 releases · Sep 2019 to Jul 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 58
  1. 1.25.2 19 Jul 2026
    Release notes

    chore: Release bytemuck version 1.25.2

    Open source →
    Release notes
    • implement NoUninit for char, bool, NonZero* arrays
    Open source →
  2. 1.25.1 10 Jul 2026
    Release notes

    chore: Release bytemuck version 1.25.1

    Open source →
    Release notes
    Open source →
  3. 1.25.0 31 Jan 2026
    Release notes

    chore: Release bytemuck version 1.25.0

    Open source →
  4. 1.24.0 03 Oct 2025
    Release notes

    chore: Release bytemuck version 1.24.0

    Open source →
  5. 1.23.2 07 Aug 2025
    Release notes
    • bump derive minimum version.
    Open source →
  6. 1.23.1 08 Jun 2025
    Release notes
    • Added a windows-only ZeroableInOption impl for "stdcall" functions.
    Open source →
  7. 1.23.0 28 Apr 2025

    Nothing published for this version

  8. 1.22.0 03 Mar 2025

    Nothing published for this version

  9. 1.21.0 20 Dec 2024

    Nothing published for this version

  10. 1.20.0 19 Nov 2024

    Nothing published for this version

  11. 1.19.0 13 Oct 2024

    Nothing published for this version

  12. 1.18.0 06 Sep 2024

    Nothing published for this version

  13. 1.17.1 27 Aug 2024
    Release notes
    • Adds #[repr(C)] to the union Transmute<A, B> type that's used internally for most of the transmutations.
    Open source →
  14. 1.17.0 16 Aug 2024
    Release notes
    • Makes the must_cast versions of the by-value and by-ref casts be const. The mut ref cast is unaffected for now (mut references aren't yet stable in const fn). This increases the MSRV of using that particular feature from 1.57 to 1.64.
    Open source →
  15. 1.16.3 30 Jul 2024
    Release notes
    • Fully described in https://github.com/Lokathor/bytemuck/pull/256, This makes casting slices to/from ZST elements more consistent between the crate's core module and other modules.
    Open source →
  16. 1.16.2 30 Jul 2024
    Release notes
    • Fixes potential UB where BoxBytes could attempt to free a dangling pointer if the Layout is zero sized. This type was introduced in 1.14.1, so that version and the others up to and including 1.16.1 are now yanked for safety.
    Open source →
  17. 1.16.1 19 Jun 2024 withdrawn
    Release notes
    • NOT SEMVER SUPPORTED: Adds the nightly_float Cargo feature. This activates the f16 and f128 nightly features, and then provides Zeroable and Pod impls for those types.
    Open source →
  18. 1.16.0 13 May 2024 withdrawn
    Release notes
    • Adds a const_zeroed feature (MSRV 1.75) which puts a zeroed fn at the crate root. This is just like the Zeroable::zeroed method, but as a const fn.
    Open source →
  19. 1.15.0 13 Mar 2024 withdrawn
    Release notes

    This primarily relaxes the bounds on a From impl.

    Previously:

    impl<T: NoUninit> From<Box<T>> for BoxBytes

    Now:

    impl<T: ?Sized + sealed::BoxBytesOf> From<Box<T>> for BoxBytes

    All related functions and methods are similarly updated.

    We believe this to be backwards compatible with all previous uses, and now BoxBytes can be converted to/from more types than before.

    Open source →
  20. 1.14.3 09 Feb 2024 withdrawn
    Release notes
    • The new std simd nightly features are apparently arch-specific. This adjusts the feature activation to be x86/ x86_64 only.
    Open source →
  21. 1.14.2 07 Feb 2024 withdrawn
    Release notes
    • Changes the name of the Nightly feature activated by the crate's nightly_stdsimd feature. This is needed as of (approximately) Nightly 2024-02-06 and later, because the Nightly feature was changed.
    Open source →
  22. 1.14.1 25 Jan 2024 withdrawn
    Release notes
    • docs clarifications.
    Open source →
  23. 1.14.0 05 Sep 2023

    Nothing published for this version

  24. 1.13.1 28 Feb 2023
    Release notes
    • Remove the requirement for the source data type to be AnyBitPattern on pod_collect_to_vec, allowing you to pod collect vecs of char into vecs of u32, or whatever.
    Open source →
  25. 1.13.0 20 Jan 2023

    Nothing published for this version

  26. 1.12.4 19 Jan 2023 withdrawn
    Release notes
    • This has additional impls for existing traits and cleans up some internal code, but there's no new functions so I guess it counts as just a patch release.
    Open source →
  27. 1.12.3 05 Nov 2022
    Release notes
    • This bugfix makes the crate do stuff with Arc or not based on the target_has_atomic config. Previously, some targets that have allocation but not atomics were getting errors. This raises the MSRV of the extern_crate_alloc feature to 1.60, but opt-in features are not considered to be hard locked to 1.34 like the basic build of the crate is.
    Open source →
  28. 1.12.2 30 Oct 2022
    Release notes
    • Fixes try_pod_read_unaligned bug that made it always fail unless the target type was exactly pointer sized in which case UB could happen. The CheckedBitPattern::is_valid_bit_pattern was being asked to check that a reference to the pod value was a valid bit pattern, rather than the actual bit pattern itself, and so the check could in some cases be illegally bypassed.
    Open source →
  29. 1.12.1 17 Aug 2022
    Release notes
    • Patch bumped the required bytemuck_derive version because of a regression in how it handled align(N) attributes.
    Open source →
  30. 1.12.0 14 Aug 2022 withdrawn

    Nothing published for this version

  31. 1.11.0 24 Jul 2022

    Nothing published for this version

  32. 1.10.0 03 Jul 2022

    Nothing published for this version

  33. 1.9.1 02 Apr 2022
    Release notes
    • Bumped the minimum bytemuck_derive dependency version from 1.0 to 1.1. The fact that bytemuck and bytemuck_derive are separate crates at all is an unfortunate technical limit of current Rust, woe and calamity.
    Open source →
  34. 1.9.0 30 Mar 2022
    Release notes
    • fu5ha added the NoUninit, AnyBitPattern, and CheckedBitPattern traits. This allows for a more fine-grained level of detail in what casting operations are allowed for a type. Types that already implement Zeroable and Pod will have a blanket impl for these new traits. This is a "preview" of the direction that the crate will probably go in the eventual 2.0 version. We're still waiting on Project Safe Transmute for an actual 2.0 version of the crate, but until then please enjoy this preview.
    • Also Fusha added better support for union types in the derive macros. I still don't know how any of the proc-macro stuff works at all, so please direct questions to her.
    Open source →
  35. 1.8.0 02 Mar 2022
    Release notes
    • try_pod_read_unaligned and pod_read_unaligned let you go from &[u8] to T:Pod without worrying about alignment.
    Open source →
  36. 1.7.3 16 Dec 2021
    Release notes
    • Experimental support for the portable_simd language extension under the nightly_portable_simd cargo feature. As the name implies, this is an experimental crate feature and it's not part of the semver contract. All it does is add the appropriate Zeroable and Pod impls.
    Open source →
  37. 1.7.2 23 Jul 2021
    Release notes
    • Why does this repo keep being hit with publishing problems? What did I do to deserve this curse, Ferris? This doesn't ever happen with tinyvec or fermium, only bytemuck.
    Open source →
  38. 1.7.1 23 Jul 2021 withdrawn
    Release notes
    • Soundness Fix: The wrap/peel methods for owned value conversion, added to TransparentWrapper in 1.6, can cause a double-drop if used with types that impl Drop. The fix was simply to add a ManuallyDrop layer around the value before doing the transmute_copy that is used to wrap/peel. While this fix could technically be backported to the 1.6 series, since 1.7 is semver compatible anyway the 1.6 series has simply been yanked.
    Open source →
  39. 1.7.0 13 Jun 2021 withdrawn

    Nothing published for this version

  40. 1.6.3 13 Jun 2021 withdrawn
    Release notes
    • Small goof with an errant ;, so PR 69 actually got things working on SPIR-V.
    Open source →
  41. 1.6.2 13 Jun 2021 withdrawn
    Release notes

    cargo upload goof! ignore this one.

    Open source →
  42. 1.6.1 12 Jun 2021 withdrawn
    Release notes
    • DJMcNab did a fix so that the crate can build for SPIR-V PR 67
    Open source →
  43. 1.6.0 10 Jun 2021 withdrawn

    Nothing published for this version

  44. 1.5.1 18 Feb 2021
    Release notes
    • Fix bytes_of failing on zero sized types. PR 53
    Open source →
  45. 1.5.0 13 Jan 2021

    Nothing published for this version

  46. 1.4.1 08 Sep 2020
    Release notes
    • thomcc fixed up the CI and patched over a soundness hole in offset_of!. PR 38
    Open source →
  47. 1.4.0 28 Aug 2020

    Nothing published for this version

  48. 1.3.1 25 Jul 2020
    Release notes
    • The entire crate is now available under the Apache-2.0 OR MIT license as well as the previous Zlib license #24.
    • HeroicKatora added the try_zeroed_slice_box function #10. zeroed_slice_box is also available.
    • The offset_of! macro now supports a 2-arg version. For types that impl Default, it'll just make an instance using default and then call over to the 3-arg version.
    • The PodCastError type now supports Hash and Display. Also if you enable the extern_crate_std feature then it will support std::error::Error.
    • We now provide a TransparentWrapper<T> impl for core::num::Wrapper<T>.
    • The error type of try_from_bytes and try_from_bytes_mut when the input isn't aligned has been corrected from being AlignmentMismatch (intended for allocation casting only) to TargetAlignmentGreaterAndInputNotAligned.
    Open source →
  49. 1.3.0 25 Jul 2020 withdrawn
    Release notes
    • Had a bug because the CI was messed up! It wasn't soundness related, because it prevented the crate from building entirely if the extern_crate_alloc feature was used. Still, this is yanked, sorry.
    Open source →
  50. 1.3.0-alpha.0 24 Jul 2020 pre-release withdrawn

    Nothing published for this version

  51. 1.2.0 07 Feb 2020
    Release notes
    • thomcc added many things:
      • A fully sound offset_of! macro #10
      • A Contiguous trait for when you've got enums with declared values all in a row #12
      • A TransparentWrapper marker trait for when you want to more clearly enable adding and removing a wrapper struct to its inner value #15
      • Now MIRI is run on CI in every single push! #16
    Open source →
  52. 1.2.0-alpha.1 29 Jan 2020 pre-release

    Nothing published for this version

  53. 1.1.0 06 Dec 2019
    Release notes
    • SimonSapin added from_bytes, from_bytes_mut, try_from_bytes, and try_from_bytes_mut (PR Link)
    Open source →
  54. 1.0.1 26 Nov 2019
    Release notes
    • Changed to the zlib license.
    • Added much more proper documentation.
    • Reduced the minimum Rust version to 1.34
    Open source →
  55. 1.0.0 19 Nov 2019

    Nothing published for this version

  56. 0.1.2 11 Nov 2019 withdrawn

    Nothing published for this version

  57. 0.1.1 05 Nov 2019 withdrawn

    Nothing published for this version

  58. 0.1.0 22 Sep 2019 withdrawn

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive