Releases: emmansun/base64
Releases · emmansun/base64
Release list
v0.10.0 (2026-6-23)
New Features
- WHATWG Forgiving Base64 Decoding (#43)
AddedForgiving()method onEncodingto support the WHATWG forgiving base64 decoding approach. In this mode, the decoder transparently ignores ASCII whitespace characters — space (' '), tab ('\t'), form feed ('\f'), line feed ('\n'), and carriage return ('\r') — in the input.decoded, err := base64.StdEncoding.Forgiving().DecodeString("SGVs bG8g V29y bGQ=")
Performance Improvements
- AMD64: AVX-512 VBMI encode/decode paths
Added dedicated AVX-512 VBMI encode and decode implementations. The encode path uses the multishift technique for maximum throughput on wide SIMD hardware. Falls back to AVX2 for tail bytes when input is not aligned to the AVX-512 block size. - LoongArch64: LASX (256-bit SIMD) encode/decode
Added full LASX encode/decode paths usingxvpermi.qfor Q-lane operations, processing 24 bytes → 32 bytes per encode iteration and 32 bytes → 24 bytes per decode iteration. Falls back to LSX for remaining tail bytes. - ARM64: Direct VTBX opcode usage
Switched to theVTBXopcode directly, eliminating unnecessary intermediate instructions. - PowerPC64x: SIMD optimizations
Refined and debugged the PPC64x assembly paths for better performance and correctness. - s390x: SIMD optimizations
Optimized the s390x vector implementation for improved throughput.
CI / Tooling
- Added Intel SDE workflow for AVX-512 VBMI testing on GitHub Actions, with automated SDE download, ptrace configuration, and SHA256 verification.
- Added base64 benchmark GitHub Action for automated performance regression tracking.
Dependencies
- Bumped
golang.org/x/sysfromv0.41.0→v0.46.0.
RISCV64 RVV Support
Notable Changes:
- Added RISCV64 RVV support for both Base64 encode and decode fast paths, with automatic fallback to generic logic when needed.
- Introduced adaptive vector-length processing to improve portability and throughput across different RVV-capable CPUs.
- Added RISCV64-specific asm tests and generic-vs-RVV benchmarks for correctness and performance validation.
- Added a new riscv64-qemu GitHub Actions workflow and updated README/README-CN CI badges and architecture lists.
- CI now covers RISCV64 QEMU testing end-to-end, and the new RVV path is verified passing.
v0.8.0
v0.7.0
Notable Changes:
- upgrade go to at least 1.23.0
By now Go 1.24.0 has been released, and Go 1.22 is no longer supported
per the Go Release Policy (https://go.dev/doc/devel/release#policy).