Skip to content

Support Base45 (RFC 9285) #13

Description

@dipu-bd

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

  • Radix core + boundary handling (2-byte and 1-byte tail)
  • Generated alphabet table + alphabet-string assertion test
  • Six standard test groups incl. RFC 9285 vectors + differential vs base_codecs
  • README / CHANGELOG (_next_) / example / test_integration updated
  • dart format, dart analyze --fatal-infos, dart test (vm + node) green

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions