BSD-3-Clause licensed by Andrew Martin
This version can be pinned in stack with:bytesmith-0.3.13.0@sha256:fe7850c9ec090305b0d670e8f144b6a7e1b78c01a8a8a492cc7825b93060b8f1,2263
Module documentation for 0.3.13.0
Parse bytes as fast as possible. This is a nonresumable parser
that aggresively uses UnboxedSums to avoid performing any
allocations.
Revision history for bytesmith
0.3.13.0 – 2025-07-11
- Add 
hexFixedWord16# 
- Drop support for base < 4.18, clean up CPP
 
- Add more levity-monomorphized variants of bind, pure, and fail
 
0.3.11.1 – 2024-02-28
- Update package metadata.
 
- Remove dependency on 
run-st library. 
0.3.11.0 – 2024-01-05
- Add 
Data.Bytes.Parser.Latin.hexWord32. 
- Add 
Data.Bytes.Parser.Latin.hexFixedWord(128|256). 
- Add 
Data.Bytes.Parser.takeN. 
0.3.10.0 – 2023-07-25
- Add 
mapErrorEffectfully. 
- Correct the implementation of 
satisfy. 
- Add 
takeUpTo. 
0.3.9.1 – 2022-12-06
0.3.9.0 – 2022-07-14
0.3.8.0 – 2021-10-11
- Add 
peek and peek' to Data.Bytes.Parser.Latin. 
- Add inline pragmas to most functions to prevent cost centers.
 
- Add support for WordRep-to-LiftedRep in Rebindable module.
 
- Allow building with newer Contiguous.
 
- Export 
uneffectful. 
0.3.7.0 – 2020-07-27
- Add 
Data.Bytes.Parser.Base128 module for Base-128 encoding. 
- Add 
Data.Bytes.Parser.Leb128 module for LEB-128 encoding.
Supports signed integers with zig-zag encoding. 
- Add 
skipWhile to Data.Bytes.Parser.Latin. 
- Reexport 
endOfInput and isEndOfInput from Latin. 
- Add 
charInsensitive to ASCII module. 
- Correct implementation of 
peek and peek'. 
0.3.6.0 – 2020-03-04
- Add 
char12 
- Add 
skipTrailedBy2, skipTrailedBy3, and variants
with an unboxed result. 
- Add 
cstring 
- Add 
peekRemaining 
- Add 
measure_ and measure_#, variants of measure
that only give the byte count. 
- Add 
Data.Bytes.Parser.Rebindable, the ultimate hack. 
- Add 
Data.Bytes.Latin.takeTrailedBy 
0.3.5.0 – 2020-02-10
- Add big-endian and little-endian 
word256 and word256Array parsers. 
- Add 
hexFixedWord64. 
0.3.4.0 – 2020-02-03
0.3.3.0 – 2020-01-22
- Add 
hexWord8, hexWord16, and hexFixedWord8. 
0.3.2.0 – 2019-12-27
- Add 
parseBytesEither and parseBytesMaybe. 
- Add common idioms from other parser libaries. This includes: 
satisfy,
satisfyWith, scan, peek, and peek'. 
0.3.1.0 – 2019-11-12
- Add big-endian and little-endian parsers for 
Word128. 
- Add a module for little-endian word parsers. This compliments the
existing big-endian module.
 
- Add functions for parsing arrays of big/little endian words of
various sizes.
 
- Add 
skipUntil to Latin. 
- Add 
char5, char6, char7, char8, char9, char10, and
char11 to Latin. 
- Correct the implementation of 
takeTrailedBy. 
0.3.0.0 – 2019-09-30
- Include the offset into the byte sequence in 
Result. Breaking change. 
- Rename 
hexWord16 to hexFixedWord16. Breaking change. 
- Rename 
parseBytesST to parseBytesEffectfully. Breaking change. 
- Add 
hexNibbleLower and tryHexNibbleLower. 
- Add 
hexNibble and tryHexNibble. 
0.2.0.1 – 2019-09-24
- Correct an overflow-detection mistake in the implementation
of machine-word parsers.
 
0.2.0.0 – 2019-09-24
- Add big-endian word parsers.
 
- Redo module structure so that encoding-specific functions each
live in their own module.
 
- Add a lot more functions and attempt to make naming somewhat
consistent.
 
- Add 
delimit. 
- Add 
replicate. 
- Add 
annotate and its infix synonym <?>. 
0.1.0.0 – 2019-08-22