awesome-repositories.com
Blog
MCP
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
Geal avatar

Geal/nom

0
View on GitHub↗
10,422 stele·847 fork-uri·Rust·MIT·9 vizualizări

Nom

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.

Features

  • Parser Combinators - Functions as a parser combinator framework for building complex binary and text parsers.
  • Combinator-Based Composition - Enables the construction of complex grammars by chaining small, reusable parsing functions.
  • Binary Data Parsers - Processes binary formats using bit-level logic to extract specific data fields.
  • Data Parsing - Extracts structured information from raw byte sequences using bit-level logic.
  • Streaming Data Processing - Handles partial data chunks and requests more input to complete parsing operations.
  • Streaming Parsers - Processes partial input chunks incrementally to handle incomplete data streams.
  • Zero-Copy Data Access - Retrieves subsets of input data as slices to eliminate memory allocation during parsing.
  • Zero-Copy Deserialization - Extracts data as slices from raw buffers to avoid memory allocations and reduce overhead.
  • Stream Parsing Utilities - Uses combinators to build complex data structures from binary or text streams.
  • Bit-Level Binary Parsers - Provides bit-level logic for extracting structured information from binary data streams.
  • Streaming Input Parsers - Provides a streaming parser that handles partial input chunks from networks or files.
  • Zero-Copy Parsers - Implements a parser that extracts structured data from raw byte arrays as slices to eliminate memory allocations.
  • Parser Combinator Frameworks - Provides a complete Rust framework for building complex binary and text parsers using combinators.
  • Structured Data Extraction - Retrieves organized information from raw byte arrays or text strings using combined parsing functions.
  • Text Extraction - Extracts organized information from strings using pattern recognition and case-insensitive comparisons.
  • Data & Text Processing - Processes text data using case-insensitive comparisons and escaped string recognizers.
  • Abstract Syntax Tree Parsing - Constructs abstract syntax trees for programming languages without requiring a separate lexing phase.
  • Parse Error Reporters - Provides mechanisms to associate error codes with specific input slices to pinpoint exact line and column failure locations.
  • Lexerless Parsers - Implements lexerless parsing to construct abstract syntax trees directly from characters.
  • Language Tooling - Parser combinator framework for Rust.

Istoric stele

Graficul istoricului de stele pentru geal/nomGraficul istoricului de stele pentru geal/nom

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Alternative open-source pentru Nom

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Nom.
  • rust-bakery/nomAvatar rust-bakery

    rust-bakery/nom

    10,426Vezi pe GitHub↗

    nom is a parser combinator framework for Rust used to build complex parsers by combining small, reusable parsing functions. It functions as a zero-copy parsing tool that minimizes memory overhead by returning slices of the original input instead of allocating new memory. The framework is designed for diverse data formats, serving as a binary data parser with configurable endianness and a bitstream processing library capable of extracting values of arbitrary bit length. It also functions as a streaming data parser that can process data arriving in chunks and signal when additional input is req

    Rustbyte-arraygrammarnom
    Vezi pe GitHub↗10,426
  • zserge/jsmnAvatar zserge

    zserge/jsmn

    4,065Vezi pe GitHub↗

    jsmn is a lightweight JSON parser library written in C. It provides zero-copy tokenization and incremental parsing designed for use in embedded systems and memory-constrained environments. The library identifies structural JSON elements by providing offsets into the original string rather than allocating new memory for data. It uses a single-pass scanning method and requires static-buffer allocation, meaning the caller provides the memory for tokens to avoid dynamic allocation during the parsing process. The parser supports incremental streaming, allowing it to process JSON data in chunks fr

    Cjson-datajson-stringparsing
    Vezi pe GitHub↗4,065
  • rkyv/rkyvAvatar rkyv

    rkyv/rkyv

    4,267Vezi pe GitHub↗

    rkyv is a zero-copy deserialization framework for Rust that provides a binary serialization format for memory-mappable data archives. It allows complex data structures to be mapped to bytes and accessed directly from a buffer without allocating new memory or copying data. The project enables the serialization of polymorphic types and trait objects, maintaining their dynamic behavior and structure within the binary form. It utilizes relative-pointer addressing and byte-aligned structure packing to ensure data remains valid regardless of where it is loaded in memory. The framework covers high-

    Rustrustserializationzero-copy
    Vezi pe GitHub↗4,267
  • alipay/furyAvatar alipay

    alipay/fury

    4,412Vezi pe GitHub↗

    Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to facilitate cross-language data exchange. It includes an interface definition language compiler that translates schema definitions into idiomatic native types and serialization boilerplate across multiple languages. The project distinguishes itself through a zero-copy binary reader that allows specific fields to be accessed without deserializing the entire object, as well as an object graph serializer that preserves circular references and referential integrity. It also features a

    Java
    Vezi pe GitHub↗4,412
Vezi toate cele 30 alternative pentru Nom→

Întrebări frecvente

Ce face geal/nom?

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.

Care sunt principalele funcționalități ale geal/nom?

Principalele funcționalități ale geal/nom sunt: Parser Combinators, Combinator-Based Composition, Binary Data Parsers, Data Parsing, Streaming Data Processing, Streaming Parsers, Zero-Copy Data Access, Zero-Copy Deserialization.

Care sunt câteva alternative open-source pentru geal/nom?

Alternativele open-source pentru geal/nom includ: rust-bakery/nom — nom is a parser combinator framework for Rust used to build complex parsers by combining small, reusable parsing… zserge/jsmn — jsmn is a lightweight JSON parser library written in C. It provides zero-copy tokenization and incremental parsing… rkyv/rkyv — rkyv is a zero-copy deserialization framework for Rust that provides a binary serialization format for memory-mappable… tidwall/gjson — gjson is a Go JSON parser designed for schema-less reading and value extraction. It allows for the retrieval of… alipay/fury — Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to… serde-rs/serde — This project is a framework for the efficient serialization and deserialization of data structures. It provides a…