Add a Base45 codec for QR-code payloads (EU Digital COVID certificate and similar). Base45 packs 2 bytes into 3 characters over a 45-symbol alphabet.
Architecture fit
- New radix core under
lib/src/core/: block-wise radix on 2-byte groups (base-256² → base-45³), with the trailing single byte encoded as 2 chars.
- Codec class in
lib/src/codecs/base45.dart (private ctor, static const standard instance), public toBase45/fromBase45 in lib/src/base45.dart with a codec: override, export added to codecs_base.dart.
Differential oracle: package:base_codecs (dev-dep).
Spec: RFC 9285
Effort: M
Checklist
Add a Base45 codec for QR-code payloads (EU Digital COVID certificate and similar). Base45 packs 2 bytes into 3 characters over a 45-symbol alphabet.
Architecture fit
lib/src/core/: block-wise radix on 2-byte groups (base-256² → base-45³), with the trailing single byte encoded as 2 chars.lib/src/codecs/base45.dart(private ctor,static conststandardinstance), publictoBase45/fromBase45inlib/src/base45.dartwith acodec:override, export added tocodecs_base.dart.Differential oracle:
package:base_codecs(dev-dep).Spec: RFC 9285
Effort: M
Checklist
_next_) / example / test_integration updateddart format,dart analyze --fatal-infos,dart test(vm + node) green