For the companion optics and pattern synonyms, see base16-lens.
Summary
The following types have supported codecs:
Data.ByteString
Data.ByteString.Lazy
Data.ByteString.Short
Data.Text
Data.Text.Lazy
Data.Text.Short
Additionally this library has
Much better performance than base16-bytestring for encode and decode, with a more conventional api.
Support for mixed-case hex decoding (defaults to lower-case encoding by convention)
Optics for handling more complex structures with Base16 representations via the base16-lens package
Checks for both validity and correctness of Base16 encodings.
There are no dependencies aside from those bundled with GHC.
Changes
Revision history for base16
0.3.2.1
Add support for GHC 9.4
Added decodeBase16' to Data.ByteString.Base16* (thanks to @shlevy #20)
0.3.2.0
Fix incorrect behavior in Data.ByteString.Short.Base16#encodeBase16
Drop base GHC <8.10
0.3.0.1
Allow for mixed-case lenient decoding + validation
Bump testing for mixed-case hex
0.3.0.0
API for decodeBase16With has changed to require ByteString instead of Text. This is in alignment with work done on base64, which reflects
the same API. This will be the final design for these types of conversions.
Test coverage now at 94%
Add NFData, Exception, and Generic instances for Base16Error + @since annotations for new instances. (#5)
Doc improvements and add -XTrustworty and -XSafe annotations where needed. (#5)
Optimized inner loop for short text and bytestrings (#4)
Changed encodeBase16 in ByteString.Short to produce ShortText, instead of Text.
0.2.1
Added support for Text.Short and ByteString.Short values
0.2.0.1
Improved performance. Decode and encode are now 3.5x-5x the next best lib.
0.2.0
Add lenient decoders
Fix bug in TextdecodeBase16 which failed on invalid UTF-8 values as a result of decoding