base64-ng 0.12.0
·
86 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
base64-ng 0.12.0
base64-ng 0.12.0 is the stabilization rehearsal release before the planned 1.0 candidate.
Highlights
- Added migration-guide smoke tests covering strict standard, URL-safe no-pad, MIME/PEM, legacy whitespace, custom alphabets, stack buffers, secret buffers, and stream wrappers.
- Added MSRV/toolchain policy validation for Cargo metadata,
rust-toolchain.toml, docs.rs metadata, CI install paths, target matrices, Kani policy, and release evidence tooling. - Completed the final 0.12 dependency admission review: the published crate remains zero-runtime-dependency, with optional ecosystem integrations still deferred.
- Hardened custom alphabet decoding so bcrypt-style,
crypt(3)-style, and caller-defined alphabets scan all 64 symbols before returning. - Clarified that default strict decoders are not constant-time decoders; secret-bearing payloads should use the
ctmodule when timing posture matters. - Refined stream output-queue saturation errors so bounded internal queue exhaustion is not reported as malformed caller input.
- Expanded volatile wipe documentation with software-only zeroization limits and guidance for applications that already use
zeroize.
Release Evidence
- Full release gate passed.
- Miri passed for no-default and all-features surfaces.
- Fuzz harness compile passed.
- Cross-target no-alloc and SIMD-reserved checks passed.
- SBOM generation passed.
- Reproducible package/build check passed.
- Kani remains a documented policy skip until its bundled compiler supports the pinned Rust
1.95toolchain.