@hackage base640.2.0.0

RFC 4648-compliant padded and unpadded base64 and base64url encodings

Base64

Build Status Hackage

Padded and unpadded base64 and base64url encodings for Text and ByteString values, along with their optics.

Summary

What does this library provide? Here is the summary:

  • Better performance over existing Base64 libraries (2x and 3x for most use-cases - see PERFORMANCE.md)
  • Support for unpadded Base64 and Base64-url
  • Support for Text encodings and decodings
  • Optics for handling more complex structures with Base64 representations via the base64-lens package

There are no dependencies aside from base:

base64 dependencies

Motivation

Haskell has two main libraries for Base64: memory, and base64-bytestring.

Of these, memory is geared towards integration with other memory primitives in the library, without much of an eye towards performance, while base64-bytestring is built to exclusively address ByteString encoding and decoding, and is very performant. Many great strides have been made in the realm of Base64 performance and vectorization just in the past 5 years, which this library attempts to capture. Additionally, we attempt to fix percieved shortcomings with both APIs in the support of unpadded Base64 and Base64-url support (which memory provides, but not base64-bytestring), as well as supporting Text values (neither libraries provide).