Skip to content

Commit 6dfd316

Browse files
committed
Prepare 1.3.4 release metadata
1 parent 97a81a7 commit 6dfd316

20 files changed

Lines changed: 156 additions & 87 deletions

File tree

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Changelog
22

3+
## 1.3.4 - 2026-07-03
4+
5+
- Added required `s390x-unknown-linux-gnu` QEMU user-mode evidence for
6+
big-endian functional correctness, scalar/fallback runtime reporting,
7+
malformed-input behavior, clear-tail behavior, in-place behavior,
8+
wrapped/legacy compatibility, and stream behavior.
9+
- Added stable Rust blocker checks proving `core::arch::s390x` and
10+
`core::arch::powerpc64` remain behind unstable `stdarch_*` feature gates on
11+
the active release toolchain.
12+
- Documented that big-endian acceleration is deliberately not admitted in this
13+
release; QEMU evidence is fallback/correctness evidence only, not hardware
14+
performance, timing, side-channel, or register-retention evidence.
15+
- Improved the optional PowerPC64 QEMU path with an early glibc sysroot
16+
preflight so maintainers get a clear missing-sysroot error instead of a
17+
linker dump.
18+
- Synchronized all workspace crate package versions to `1.3.4`.
19+
320
## 1.3.3 - 2026-07-03
421

522
- Admitted narrow wasm `simd128` runtime dispatch for Standard and URL-safe

Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "base64-ng"
3-
version = "1.3.3"
3+
version = "1.3.4"
44
edition = "2024"
55
rust-version = "1.90"
66
license = "MIT OR Apache-2.0"

README.md

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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

4243
Encode 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

6162
Implemented 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
184185
is checked separately in CI so the project can build and test with the latest
185186
stable 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

207208
The 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"
325326
serde = { 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"
345346
bytes = "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"
382383
tokio = { 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

417418
Enable 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

crates/base64-ng-bytes/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "base64-ng-bytes"
3-
version = "1.3.3"
3+
version = "1.3.4"
44
edition = "2024"
55
rust-version = "1.90"
66
license = "MIT OR Apache-2.0"
@@ -23,7 +23,7 @@ default = ["std"]
2323
std = ["base64-ng/std", "bytes/std"]
2424

2525
[dependencies]
26-
base64-ng = { version = "1.3.3", path = "../..", default-features = false, features = ["alloc"] }
26+
base64-ng = { version = "1.3.4", path = "../..", default-features = false, features = ["alloc"] }
2727
bytes = { version = "1.12.0", default-features = false }
2828

2929
[lints.rust]

crates/base64-ng-derive/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "base64-ng-derive"
3-
version = "1.3.3"
3+
version = "1.3.4"
44
edition = "2024"
55
rust-version = "1.90"
66
license = "MIT OR Apache-2.0"
@@ -27,7 +27,7 @@ default = []
2727
[dependencies]
2828

2929
[dev-dependencies]
30-
base64-ng = { version = "1.3.3", path = "../..", default-features = false }
30+
base64-ng = { version = "1.3.4", path = "../..", default-features = false }
3131

3232
[lints.rust]
3333
unsafe_code = "deny"

crates/base64-ng-sanitization/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "base64-ng-sanitization"
3-
version = "1.3.3"
3+
version = "1.3.4"
44
edition = "2024"
55
rust-version = "1.90"
66
license = "MIT OR Apache-2.0"
@@ -31,7 +31,7 @@ strict-ct = ["sanitization/strict-ct"]
3131
wasm-compat = ["sanitization/wasm-compat"]
3232

3333
[dependencies]
34-
base64-ng = { version = "1.3.3", path = "../..", default-features = false }
34+
base64-ng = { version = "1.3.4", path = "../..", default-features = false }
3535
sanitization = { version = "=1.2.2", default-features = false }
3636

3737
[lints.rust]

crates/base64-ng-sanitization/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ constant-time-oriented Base64 decode into clear-on-drop secret containers.
88

99
```toml
1010
[dependencies]
11-
base64-ng = { version = "1.3.3", default-features = false }
12-
base64-ng-sanitization = { version = "1.3.3", default-features = false }
11+
base64-ng = { version = "1.3.4", default-features = false }
12+
base64-ng-sanitization = { version = "1.3.4", default-features = false }
1313
```
1414

1515
```rust
@@ -29,15 +29,15 @@ assert!(secret.sanitization_verify(
2929
Enable `alloc` for heap-backed `sanitization::SecretVec` helpers:
3030

3131
```toml
32-
base64-ng-sanitization = { version = "1.3.3", features = ["alloc"] }
32+
base64-ng-sanitization = { version = "1.3.4", features = ["alloc"] }
3333
```
3434

3535
For high-assurance native deployments, enable locked storage helpers. This
3636
uses `sanitization` 1.2.2's `memory-lock`, `canary-check`, and
3737
`random-canary` features and decodes directly into locked memory:
3838

3939
```toml
40-
base64-ng-sanitization = { version = "1.3.3", features = ["high-assurance"] }
40+
base64-ng-sanitization = { version = "1.3.4", features = ["high-assurance"] }
4141
```
4242

4343
```rust
@@ -90,5 +90,5 @@ For deployments that want `sanitization`'s assembly-backed comparison checks,
9090
enable the passthrough features:
9191

9292
```toml
93-
base64-ng-sanitization = { version = "1.3.3", features = ["strict-ct"] }
93+
base64-ng-sanitization = { version = "1.3.4", features = ["strict-ct"] }
9494
```

crates/base64-ng-serde/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "base64-ng-serde"
3-
version = "1.3.3"
3+
version = "1.3.4"
44
edition = "2024"
55
rust-version = "1.90"
66
license = "MIT OR Apache-2.0"
@@ -24,7 +24,7 @@ alloc = ["base64-ng/alloc", "serde/alloc"]
2424
std = ["alloc", "base64-ng/std", "serde/std"]
2525

2626
[dependencies]
27-
base64-ng = { version = "1.3.3", path = "../..", default-features = false }
27+
base64-ng = { version = "1.3.4", path = "../..", default-features = false }
2828
serde = { version = "1.0.228", default-features = false }
2929

3030
[dev-dependencies]

crates/base64-ng-subtle/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "base64-ng-subtle"
3-
version = "1.3.3"
3+
version = "1.3.4"
44
edition = "2024"
55
rust-version = "1.90"
66
license = "MIT OR Apache-2.0"
@@ -24,7 +24,7 @@ alloc = ["base64-ng/alloc"]
2424
std = ["alloc", "base64-ng/std", "subtle/std"]
2525

2626
[dependencies]
27-
base64-ng = { version = "1.3.3", path = "../..", default-features = false }
27+
base64-ng = { version = "1.3.4", path = "../..", default-features = false }
2828
subtle = { version = "2.6.1", default-features = false }
2929

3030
[lints.rust]

0 commit comments

Comments
 (0)