nom is a Rust parser combinator framework used to build complex parsers for binary and text data. It functions as an abstract syntax tree generator and a bit-level binary parser, allowing users to construct structured data by combining small, reusable parsing functions.
The framework provides specialized support for zero-copy binary parsing, extracting data as slices from raw byte arrays to avoid memory allocations. It also includes a streaming data parser capable of processing partial input chunks from networks or files and signaling when additional input is required.
The project covers a broad range of parsing capabilities, including lexerless programming language parsing, text format extraction using case-insensitive comparisons, and bit-level logic for binary data processing. It also includes observability features for parsing error mapping, associating error codes with specific input slices to pinpoint failure locations.