@@ -29,14 +29,15 @@ The crate starts conservative: a small scalar implementation, strict RFC 4648 be
2929
3030## Current Status
3131
32- The current public release is ` 1.3.3 ` .
33-
34- ` 1.3.3 ` is a focused wasm SIMD runtime-dispatch and profile-ergonomics patch
35- on top of the ` 1.3.0 ` implementation-completion release, the ` 1.3.1 ` Tokio
36- writer patch, and the ` 1.3.2 ` non-standard SIMD surface review. It keeps the
37- admitted ` 1.2.x ` native encode acceleration posture and the admitted ` 1.3.0 `
38- normal strict SIMD decode scope for Standard and URL-safe alphabet families on
39- std ` x86 ` /` x86_64 ` AVX-512 VBMI, AVX2, SSSE3/SSE4.1, and little-endian std
32+ The current public release is ` 1.3.4 ` .
33+
34+ ` 1.3.4 ` is a big-endian QEMU evidence and stable-intrinsic-blocker patch on
35+ top of the ` 1.3.0 ` implementation-completion release, the ` 1.3.1 ` Tokio
36+ writer patch, the ` 1.3.2 ` non-standard SIMD surface review, and the ` 1.3.3 `
37+ wasm SIMD runtime-dispatch and profile-ergonomics patch. It keeps the admitted
38+ ` 1.2.x ` native encode acceleration posture and the admitted ` 1.3.0 ` normal
39+ strict SIMD decode scope for Standard and URL-safe alphabet families on std
40+ ` x86 ` /` x86_64 ` AVX-512 VBMI, AVX2, SSSE3/SSE4.1, and little-endian std
4041` aarch64 ` NEON after whole-input scalar validation.
4142
4243Encode acceleration remains active only for admitted Standard and URL-safe
@@ -51,12 +52,12 @@ and normal strict decode when the binary is compiled with
5152` target-feature=+simd128 ` , the ` simd ` feature, and the explicit
5253` allow-wasm32-best-effort-wipe ` feature.
5354
54- The latest patch in this line is ` 1.3.3 ` , which admits narrow wasm ` simd128 `
55- runtime dispatch with Node/V8, Wasmtime, Chromium-family browser,
56- Firefox/SpiderMonkey, and Safari/WebKit smoke evidence, keeps the wasm cleanup
57- caveat fail-closed by default , and adds
58- wrapped-profile helper ergonomics plus stack-staged in-place encode and decode
59- dispatch. The workspace crate family stays version-aligned at ` 1.3.3 ` .
55+ The latest patch in this line is ` 1.3.4 ` , which adds required
56+ ` s390x-unknown-linux-gnu ` QEMU user-mode functional evidence for scalar
57+ fallback behavior, records that stable Rust still gates ` s390x ` and
58+ PowerPC64 vector intrinsics , and documents that big-endian acceleration is not
59+ admitted until stable intrinsics or a separate assembly-backed review exists.
60+ The workspace crate family stays version-aligned at ` 1.3.4 ` .
6061
6162Implemented on this branch now:
6263
@@ -184,7 +185,7 @@ The active release toolchain is Rust `1.96.1`. MSRV remains Rust `1.90.0` and
184185is checked separately in CI so the project can build and test with the latest
185186stable compiler without dropping older supported users.
186187
187- Compatibility evidence for the ` 1.3.3 ` workspace:
188+ Compatibility evidence for the ` 1.3.4 ` workspace:
188189
189190| Rust | Local Evidence |
190191| --- | --- |
@@ -201,7 +202,7 @@ Compatibility evidence for the `1.3.3` workspace:
201202
202203``` toml
203204[dependencies ]
204- base64-ng = " 1.3.3 "
205+ base64-ng = " 1.3.4 "
205206```
206207
207208The crate is dual-licensed:
@@ -262,8 +263,8 @@ decode directly into `sanitization::LockedSecretBytes` or
262263
263264``` toml
264265[dependencies ]
265- base64-ng = { version = " 1.3.3 " , default-features = false }
266- base64-ng-sanitization = { version = " 1.3.3 " , default-features = false }
266+ base64-ng = { version = " 1.3.4 " , default-features = false }
267+ base64-ng-sanitization = { version = " 1.3.4 " , default-features = false }
267268```
268269
269270``` rust
@@ -282,7 +283,7 @@ assert!(secret.sanitization_verify(
282283
283284``` toml
284285[dependencies ]
285- base64-ng-sanitization = { version = " 1.3.3 " , features = [" high-assurance" ] }
286+ base64-ng-sanitization = { version = " 1.3.4 " , features = [" high-assurance" ] }
286287```
287288
288289``` rust
@@ -301,8 +302,8 @@ newtypes around fixed byte arrays:
301302
302303``` toml
303304[dependencies ]
304- base64-ng = { version = " 1.3.3 " , default-features = false }
305- base64-ng-derive = " 1.3.3 "
305+ base64-ng = { version = " 1.3.4 " , default-features = false }
306+ base64-ng-derive = " 1.3.4 "
306307```
307308
308309``` rust
@@ -321,7 +322,7 @@ assert_eq!(key.encode_base64::<8>().unwrap().as_str(), "aGVsbG8=");
321322
322323``` toml
323324[dependencies ]
324- base64-ng-serde = " 1.3.3 "
325+ base64-ng-serde = " 1.3.4 "
325326serde = { version = " 1.0.228" , features = [" derive" ] }
326327```
327328
@@ -340,8 +341,8 @@ Field-level modules are available for `standard`, `standard_no_pad`,
340341
341342``` toml
342343[dependencies ]
343- base64-ng = " 1.3.3 "
344- base64-ng-bytes = " 1.3.3 "
344+ base64-ng = " 1.3.4 "
345+ base64-ng-bytes = " 1.3.4 "
345346bytes = " 1.12.0"
346347```
347348
@@ -358,8 +359,8 @@ projects that already admit `subtle`:
358359
359360``` toml
360361[dependencies ]
361- base64-ng = " 1.3.3 "
362- base64-ng-subtle = " 1.3.3 "
362+ base64-ng = " 1.3.4 "
363+ base64-ng-subtle = " 1.3.4 "
363364```
364365
365366``` rust
@@ -377,8 +378,8 @@ controlled by a peer:
377378
378379``` toml
379380[dependencies ]
380- base64-ng = " 1.3.3 "
381- base64-ng-tokio = " 1.3.3 "
381+ base64-ng = " 1.3.4 "
382+ base64-ng-tokio = " 1.3.4 "
382383tokio = { version = " 1.52.3" , features = [" io-util" ] }
383384```
384385
@@ -411,7 +412,7 @@ Disable defaults for embedded or freestanding use:
411412
412413``` toml
413414[dependencies ]
414- base64-ng = { version = " 1.3.3 " , default-features = false }
415+ base64-ng = { version = " 1.3.4 " , default-features = false }
415416```
416417
417418Enable admitted encode acceleration on supported ` std ` targets with the
@@ -423,7 +424,7 @@ and URL-safe alphabets after whole-input scalar validation:
423424
424425``` toml
425426[dependencies ]
426- base64-ng = { version = " 1.3.3 " , features = [" simd" ] }
427+ base64-ng = { version = " 1.3.4 " , features = [" simd" ] }
427428```
428429
429430``` rust
0 commit comments