Skip to content

Update Rust crate base64 to v0.21.4

Renovate Bot requested to merge renovate/base64-0.x into main

This MR contains the following updates:

Package Type Update Change
base64 dependencies minor 0.13 -> 0.21
base64 dependencies minor 0.13.1 -> 0.21.4

Release Notes

marshallpierce/rust-base64 (base64)

v0.21.4

Compare Source

  • Make encoded_len const, allowing the creation of arrays sized to encode compile-time-known data lengths

v0.21.3

Compare Source

  • Implement source instead of cause on Error types
  • Roll back MSRV to 1.48.0 so Debian can continue to live in a time warp
  • Slightly faster chunked encoding for short inputs
  • Decrease binary size

v0.21.2

Compare Source

  • Rollback MSRV to 1.57.0 -- only dev dependencies need 1.60, not the main code

v0.21.1

Compare Source

  • Remove the possibility of panicking during decoded length calculations
  • DecoderReader no longer sometimes erroneously ignores padding #​226

Breaking changes

  • Engine.internal_decode return type changed
  • Update MSRV to 1.60.0

v0.21.0

Compare Source

Migration

Functions
< 0.20 function 0.21 equivalent
encode() engine::general_purpose::STANDARD.encode() or prelude::BASE64_STANDARD.encode()
encode_config() engine.encode()
encode_config_buf() engine.encode_string()
encode_config_slice() engine.encode_slice()
decode() engine::general_purpose::STANDARD.decode() or prelude::BASE64_STANDARD.decode()
decode_config() engine.decode()
decode_config_buf() engine.decode_vec()
decode_config_slice() engine.decode_slice()

The short-lived 0.20 functions were the 0.13 functions with config replaced with engine.

Padding

If applicable, use the preset engines engine::STANDARD, engine::STANDARD_NO_PAD, engine::URL_SAFE, or engine::URL_SAFE_NO_PAD. The NO_PAD ones require that padding is absent when decoding, and the others require that canonical padding is present .

If you need the < 0.20 behavior that did not care about padding, or want to recreate < 0.20.0's predefined Configs precisely, see the following table.

0.13.1 Config 0.20.0+ alphabet encode_padding decode_padding_mode
STANDARD STANDARD true Indifferent
STANDARD_NO_PAD STANDARD false Indifferent
URL_SAFE URL_SAFE true Indifferent
URL_SAFE_NO_PAD URL_SAFE false Indifferent

v0.20.0

Compare Source

Breaking changes

  • Update MSRV to 1.57.0
  • Decoding can now either ignore padding, require correct padding, or require no padding. The default is to require correct padding.
    • The NO_PAD config now requires that padding be absent when decoding.

0.20.0-alpha.1

Breaking changes
  • Extended the Config concept into the Engine abstraction, allowing the user to pick different encoding / decoding implementations.
    • What was formerly the only algorithm is now the FastPortable engine, so named because it's portable (works on any CPU) and relatively fast.
    • This opens the door to a portable constant-time implementation (#​153, presumably ConstantTimePortable?) for security-sensitive applications that need side-channel resistance, and CPU-specific SIMD implementations for more speed.
    • Standard base64 per the RFC is available via DEFAULT_ENGINE. To use different alphabets or other settings ( padding, etc), create your own engine instance.
  • CharacterSet is now Alphabet (per the RFC), and allows creating custom alphabets. The corresponding tables that were previously code-generated are now built dynamically.
  • Since there are already multiple breaking changes, various functions are renamed to be more consistent and discoverable.
  • MSRV is now 1.47.0 to allow various things to use const fn.
  • DecoderReader now owns its inner reader, and can expose it via into_inner(). For symmetry, EncoderWriter can do the same with its writer.
  • encoded_len is now public so you can size encode buffers precisely.

v0.13.1

Compare Source

  • More precise decode buffer sizing, avoiding unnecessary allocation in decode_config.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about these updates again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by Renovate Bot

Merge request reports