HORIZON HASKELLDocslts/ghc-10.0.x77a86622026-10-31Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 77a8662 · 2026-10-31

Modulebase64-1.0Haskell2010

Data.ByteString.Lazy.Base64

This module contains ByteString-valued combinators for implementing the RFC 4648 specification of the Base64 encoding format. This includes lenient decoding variants, as well as internal and external validation for canonicity.

Contents
  1. Encoding
  2. Decoding
  3. Validation
Synopsis
  • Packagebase64-1.0
  • Exports7
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceBase64.hs

Encoding

Decoding

Decode a padded untyped Base64-encoded ByteString value.

See: RFC-4648 section 4

Examples:
Example1 expression
decodeBase64Untyped "U3Vu"Right "Sun"
Example1 expression
decodeBase64Untyped "U3V"Left "Base64-encoded bytestring requires padding"
Example1 expression
decodeBase64Untyped "U3V="Left "non-canonical encoding detected at offset: 2"

Leniently decode an unpadded Base64-encoded ByteString value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.

Note: This is not RFC 4648-compliant.

Examples:
Example1 expression
decodeBase64Lenient "U3Vu""Sun"
Example1 expression
decodeBase64Lenient "U3V""Su"
Example1 expression
decodeBase64Lenient "U3V=""Su"

Validation

Tell whether a ByteString value is base64 encoded.

This function will also detect non-canonical encodings such as ZE==, which are externally valid Base64-encoded values, but are internally inconsistent "impossible" values.

Examples:
Example1 expression
isBase64 "U3Vu"True
Example1 expression
isBase64 "U3V"False
Example1 expression
isBase64 "U3V="False

Tell whether a ByteString value is a valid Base64 format.

This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded ByteString value, use isBase64.

Examples:
Example1 expression
isValidBase64 "U3Vu"True
Example1 expression
isValidBase64 "U3V"True
Example1 expression
isValidBase64 "U3V="True
Example1 expression
isValidBase64 "%"False