• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bitshifter / glam-rs / 36212371374
99%

Build:
DEFAULT BRANCH: main
Ran 26 Sep 2026 02:40AM UTC
Jobs 4
Files 154
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Sep 2026 02:39AM UTC coverage: 98.996% (+0.002%) from 98.994%
36212371374

push

github

web-flow
feat: add a `rkyv-08` feature with dedicated portable archived types (#869)

## Objective

Add the dedicated archived types from #766 without changing the existing
`rkyv`
feature. #766 changed `rkyv` in place, which is breaking; here the new
impls go
on a new `rkyv-08` feature, the old impls will be removed in the next
major
release of glam.

Supersedes #766 (@MarijnS95)

Fixes #844 

## Solution

Opt in with `rkyv-08`:

```toml
glam = { version = "0.33", features = ["rkyv-08"] }
```

- `rkyv-08` archives each `glam` type to its own `Archived*` counterpart
built
from `rkyv`'s archived primitives, exposed at `glam::rkyv_08`. The
archived
  element type follows `rkyv`'s `unaligned` and `big_endian` features.
- The archived types implement `bytemuck::Pod`/`Zeroable`, convert to
and from
the native type with `From`, and get `Archive::COPY_OPTIMIZATION` where
the
archived form is a byte-for-byte copy of the native one. `Portable` and
  `NoUndef` are only implemented where the archived type really has that
  property.
- `rkyv` keeps the previous impls, in `src/features/impl_rkyv.rs`, which
are now
  documented as unsound and will be removed in the next major release.
- The dependency is renamed `rkyv-08 = { package = "rkyv", version =
"0.8" }`
  following #857, matching `encase-012`/`encase-013`.
- `bytecheck` works with either feature.
- If both are enabled the `rkyv-08` impls are used; the two sets cannot
compile
together because both implement `rkyv` 0.8's `Archive` for the same
types, so
the old impls are gated on `all(feature = "rkyv", not(feature =
"rkyv-08"))`.

The old impls are unsound because they claim `Portable` for layouts that
differ
between targets (`Vec3A`/`Mat3A`/`Affine3A` alignment, `Affine2` tail
padding,
`Vec3A` padding under `scalar-math`) and `NoUndef` for types with
padding, so
archives copied uninitialised bytes and depended on the native
endianness and
the SIMD backend.

## Migration

No breaking change. Replace `rkyv` with `rkyv-0... (continued)

196 of 197 new or added lines in 1 file covered. (99.49%)

73 existing lines in 16 files now uncovered.

93347 of 94294 relevant lines covered (99.0%)

123333.79 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
99.49
src/features/impl_rkyv_08.rs

Coverage Regressions

Lines Coverage ∆ File
15
94.55
-3.03% src/f32/sse2/quat.rs
6
92.05
-3.41% src/f32/math.rs
6
97.67
-0.47% src/f32/neon/mat3a.rs
6
97.65
-0.94% src/f32/sse2/mat3a.rs
5
92.96
0.0% src/coresimd.rs
5
97.96
-1.28% src/f32/coresimd/mat2.rs
3
97.87
-2.13% src/bool/sse2/bvec3a.rs
3
98.05
-1.95% src/bool/sse2/bvec4a.rs
3
98.08
-0.72% src/f32/neon/mat2.rs
3
98.75
-0.34% src/f32/scalar/vec3a.rs
3
98.02
-0.74% src/f32/sse2/mat2.rs
3
99.21
0.34% src/f32/sse2/vec3a.rs
3
99.71
-0.29% src/f64/dmat4.rs
3
95.45
0.0% src/f64/math.rs
3
99.28
-0.27% src/i16/i16vec2.rs
3
98.3
-0.24% src/i32/ivec3.rs
Jobs
ID Job ID Ran Files Coverage
1 native_simd-macos-latest - 36212371374.1 26 Sep 2026 02:40AM UTC 122
98.87
GitHub Action Run
2 core_simd-ubuntu-latest - 36212371374.2 26 Sep 2026 02:40AM UTC 121
98.95
GitHub Action Run
3 scalar_math-ubuntu-latest - 36212371374.3 26 Sep 2026 02:40AM UTC 121
98.89
GitHub Action Run
4 native_simd-ubuntu-latest - 36212371374.4 26 Sep 2026 02:41AM UTC 122
98.87
GitHub Action Run
Source Files on build 36212371374
  • Tree
  • List 154
  • Changed 68
  • Source Changed 0
  • Coverage Changed 68
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36212371374
  • fd9217a7 on github
  • Prev Build on main (#36113729294)
  • Next Build on main (#36227425064)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc