Skip to content

base64-ng 0.12.0

Choose a tag to compare

@eldryoth eldryoth released this 17 May 19:25
· 86 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.12.0
06e40da

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 ct module 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.95 toolchain.