Base64

Encode and decode Base64 data. Supports both standard Base64 (RFC 4648) and URL-safe Base64 encoding.

import Encoding.Base64

Encoding

Base64.encode
String -> String
Encode a string to standard Base64 (uses + and / characters, with = padding).
encoded = Base64.encode "Hello, World!"
# "SGVsbG8sIFdvcmxkIQ=="
Base64.encode-url
String -> String
Encode a string to URL-safe Base64 (uses - and _ instead of + and /, no padding). Safe for use in URLs and filenames.
token = Base64.encode-url "user:password"
# "dXNlcjpwYXNzd29yZA"

Decoding

Base64.decode
String -> String
Decode a standard Base64 string. Returns an empty string for invalid input.
decoded = Base64.decode "SGVsbG8sIFdvcmxkIQ=="
# "Hello, World!"
Base64.decode-url
String -> String
Decode a URL-safe Base64 string. Returns an empty string for invalid input.
decoded = Base64.decode-url "dXNlcjpwYXNzd29yZA"
# "user:password"

Validation

Base64.valid?
String -> Bool
Check if a string is valid standard Base64 encoding.
if Base64.valid? input
  then Base64.decode input
  else "Invalid Base64"
Base64.valid-url?
String -> Bool
Check if a string is valid URL-safe Base64 encoding.
Standard vs URL-Safe

Standard Base64 uses +, /, and = characters which have special meaning in URLs. URL-safe Base64 replaces these with -, _, and omits padding, making it safe for query parameters and filenames.