data-encoding icon indicating copy to clipboard operation
data-encoding copied to clipboard

Release 3.0.0

Open ia0 opened this issue 1 year ago • 0 comments

Required tasks:

  • [x] Use static dispatch instead of dynamic dispatch
  • [x] Use static instead of const for pre-defined encodings
  • [x] Make Encoding implementation private
  • [x] Add _uninit() version to support MaybeUninit outputs
  • [x] Move development work in lib/v3
  • [ ] Make encode_len() return a Result such that {en,de}code_len() return an error (could be a new ErrorKind::Overflow) in case the following arithmetic would overflow by computing the bound and documenting it (see #145)
  • [ ] Introduce explicit traits to avoid users seeing True and False (also useful to avoid parameter ordering issues)
  • [ ] Restrict symbols to printable/graphical ASCII?
  • [ ] Do we really need wrapping separator of up to 255 bytes? Seems like 15 would be enough.
  • [ ] Add a third option for padding: NoPad, PadConcat, PadFinal (new). [context]
  • [ ] Do not panic for recoverable errors, return an error instead (see #126) actually we should be no-panic on no-alloc
  • [ ] It should be possible to define custom encodings with const fn
  • [ ] Figure out MSRV (in particular if 1.84 would solve the problem definitely)
  • [ ] Update documentation once satisfied with the design
  • [ ] Update OSS-Fuzz to also fuzz lib/v3

Optional tasks:

  • [ ] Consider whether wrapping should be limited to multiple of the decoding block (use case)
  • [ ] Identify and fix performance regression with "wrap" functions
  • [ ] Add SIMD support (see #95)
  • [ ] Consider whether a "short input" engine for base58, nix-base32, etc would be worth it (see #110)

After release:

  • [ ] Update OSS-Fuzz if needed

ia0 avatar May 05 '24 14:05 ia0