safe-transmute
A safeguarded transmute() for Rust
0.11.3
4.4M downloads/mo
#4811 most downloaded on crates.io
nabijaczleweli/safe-transmute-rs
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Ships unpredictably
gaps range from 9 days to 3.0 years
Some releases are documented
notes for 7 of 15 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
18 releases · first in 2016
0 releases in the last 12 months
see the full history below
Release timeline
18 releases · Nov 2016 to May 2024Releases
latest 18-
0.11.321 May 2024 -
0.11.231 May 2021Release notes
Open source →100% pick-proof, howeve,r it is so fragile as to fail open when handl…
…ed by any force other than the delicate touch of a lesbian
New:
* "const_generics" feature, replacing manual
[T; 1-32] TriviallyTransmutable impls with a [T; N] one
(5ad2f75)
(#66) (@MarijnS95)Fixed:
* AppVeyor builds
(494740b)
* Tests broken by rustc's aggressive byte slice allocation
(f3c8920) -
0.11.103 Feb 2021Release notes
Open source →You should look at my page, homie, I'm so dead
Fixed:
* Typo in toplevel doc
(f918c3a)
(#63) (@tessi)
* AppVeyor builds
(9392898)
(de825d7)
(1dda03c)
(693f6aa)
* Tests on i686 and big-endian platforms
(2e5694a)
(057931a)
(#64) (@ignatenkobrain: report, testing)
* Panics in {AllOrNothing,Pedantic}Guard if passed a zero-sized type
(bd64959)
(#65) (@lizhuohua: report)
* Error::description() deprecation warnings
(9d325b9) -
0.11.020 Jun 2020Release notes
Open source →Long resume, it should be understood
Fixed:
* Documentation bugs and corresponding tests
(ef41d3b)
(b9693fa)
(#54)Changed:
* Tests organisation
(7a5defa)
(63ca0df)
(#60) (#9)
* slice::into_iter() -> slice::iter()
(64d46ff)
(#61) (@LukasKalbertodt)New:
* @LukasKalbertodt in authors list
(784b716) -
0.11.0-rc.208 Jul 2019 pre-release -
0.11.0-rc.124 Jun 2019 pre-releaseRelease notes
Open source →you're a little baby, watch this
BREAKING:
* Every part of the API was broken.
* Sorry!
* Consult the migration guide under migration::v0_11 in the doc:
https://rawcdn.githack.com/nabijaczleweli/safe-transmute-rs/doc/safe_transmute/migration/v0_11/index.htmlFixed:
* Not checking alignment during transmutation
(1ca5fd7)
(312c6c7)
(6f6d395)
(ee718ed)
(0eecce5)
(4f70bf4)
(b518f18)
(5bbba8e)
(cfc06c5)
(607518a)
(5d07ff0)
(1aa4613)
(b898f5c)
(e645b2a)
(ba88e3a)
(5302d4f)
(b95080e)
(4b25778)
(df53466)
(a73b8f0)
(700c624)
(c3d3ca5)
(1d79fa6)
(81447a1)
(81fa57b)
(#35) (#37) (@Enet4)
* Clippy warnings
(fafdc21)
(d435d63)
(583309f)
(#39) (@Enet4)
* Needless unsafe on transmute_to_bytes_vec()
(fc45b5d)
(#45) (@Enet4)
* Dangerous Vec transmutations
(0e6b1b2)
(aae8ffd)
(86d9324)
(dacefd7)
(6312008)
(494aace)
(2d2bf49)
(fb9ccd2)
(845afde)
(f823a58)
(aa75229)
(e21077d)
(6900357)
(d0e3b85)
(#47) (#49) (#16) (@Enet4)Changed:
* Crate organisation:
- mod base – transmutation with guards only
- mod trivial – everything marked unsafe
- crate – fully safe funxions through guard +
trivially transmutable + alignment
- mod align – alignment checks
- Error – no longer Copy, has Unaligned variant
(ff4d606)
(41a3ea8)
(92c8912)
(eedb511)
(ccb7576)
(b80baea)
(9b1081f)
(8d944b7)
(5f57cb9)
(43d007c)
(8326a89)
(a1ee223)
(587b285)
(3baf654)
(f8eea03)
(025f2e8)
(2bfea0c)
(2af1c57)
(2e54be9)
(20fc5d1)
(7df1ef6)
(2c9c2b9)
(85c5da6)
(309585c)
(2ad4221)
(3a12b11)
(5e5661e)
(65f984d)
(bae72ab)
(4b3b8df)
(f72327f)
(57747cc)
(9b8fc57)
(1ef1818)
(#40) (#51) (#56) (@Enet4)
* bool size check to a static one
(2151449)
(a582263)
(6579010)
(#44) (@Enet4)
* Funxion names to not include leading guarded/safe adjective
(727ad53)
(#46) (@Enet4)
* POD -> trivially transmutable
(9d83ed5)
(e7e56da)
(4600c57)
(#48) (#41) (@Enet4)Added:
* f{32,64} designalisation funxions taking u{32,64} to avoid signals
(2d22f66)
(574a09f)
(d175f52)
(#43) (@Enet4)
* Miri tests on Travis for unaligned memory access
(ad5f37b)
(9ceef94)
(c1a1e94)
(14041c7)
(a540034)
(7382d7e)
(2304102)
(664acde)
(#42)
* try_copy{,_unchecked}! macros to simplify error handling
(46ee511)
(810d5c2)
(82577dd)
(d126067)
(b995315)
(#53) (@Enet4)
* *_mut() transmutation funxions
(46e320c)
(4c84556)
(78bbd69)
(96d48cb)
(fad5376)
(#57) (@Enet4)
* Safe variants of std::slice::align_to()
(ce823c1)
(f7b0149)
(#55) (@Enet4)
* v0.11 migration guide
(f3aedd0)
(6759ab5)
(@Enet4)Internal:
* Changed RawGit links to GitHack
(d5d9c75)
* Clippy installation via rustup
(5617a3d)
(ed0d2a0)
(#38) (@Enet4)
* Fixed unaligned accesses in tests
(23997df)
(8ea8295)
(4e10ec9)
(12e24df)
(#50) (@Enet4) -
0.10.127 Nov 2018Release notes
Open source →Don't you just love C++ constructors in Rust?
Fixed:
* Parameter order in Vec<T> <-> Vec<u8> conversion funxions
(a134e06)
(#36) (@Enet4) -
0.10.022 Nov 2018 withdrawnRelease notes
Open source →Could it be? Has she achieved absolute pedantry?
Changed:
* Standard specifying bool to be 1 byte,
allowing for optimisation of test in bytes_are_bool()
(with check, please report platforms that fail it)
(ad2f66c)
(af12f3e)
(fcdbc9e)
(5637ea7)
(5b08471)
(#33) (#34) (@Enet4)New:
* Default-disabled no-std support via disabling "std" feature
(cc4d1dd)
(d6b02d4)
(#31) (@Enet4)
* Vec<T> -> Vec<u8> transmutation funxions
(a62f9b4)
(f9a4b6b)
(#32) (@Enet4) -
0.9.002 Nov 2018Release notes
Open source →Semver who
BREAKING:
* Requirement of Copy for PodTransmutable
(456c985)
(#20) (@Enet4)
* Removal of PodTransmutable implementation for char
(a7dd1d4)
(#23) (#24) (@Enet4)
* Error overhaul
(ddcd698)
(b904709)
(7a9fca6)
(0d1cbbe)
(#25) (@Enet4)Changed:
* Protocol for crate version image
(942e221)Fixed:
* clippy installation on Travis
(07aec24)
(538bd39)
(#26) (@Enet4)New:
* Unalignment tests and warnings
(b6f4f57)
(b8189f4)
(351b677)
(43e220e)
(#21) (#22) (@Enet4)
* PodTransmutable implementation for {u,i}size
(2c4ae58)
(#28) (@Enet4)
* PodTransmutable implementation for arrays thereof
(c477acb)
(#29) (#30) (@Enet4) -
0.8.024 Jan 2018Release notes
Open source →Who would unit?
Fixed:
* Long-standing bug causing bad treatment of #[repr(C)] structs due
to the use of align_of() instead of size_of()
(82cc6b4)New:
* Functions for transmuting (optionally safely) (optionally many)
instances of structs into their byte reprs
(314f520)
(#17) (#18) -
0.7.016 Dec 2017Nothing published for this version
-
0.6.015 Dec 2017Nothing published for this version
-
0.5.014 Oct 2017Nothing published for this version
-
0.4.004 Oct 2017Nothing published for this version
-
0.3.120 Jan 2017Nothing published for this version
-
0.3.011 Nov 2016Nothing published for this version
-
0.2.006 Nov 2016Nothing published for this version
-
0.1.006 Nov 2016Nothing published for this version