awesome-repositories.com
المدونة
awesome-repositories.com

اكتشف أفضل مستودعات المصادر المفتوحة باستخدام بحث مدعوم بالذكاء الاصطناعي.

استكشفعمليات بحث منسقةبدائل مفتوحة المصدربرمجيات ذاتية الاستضافةالمدونةخريطة الموقع
المشروعحولكيفية ترتيب النتائجالصحافةخادم MCP
قانونيالخصوصيةالشروط
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
rust-bakery avatar

rust-bakery/nom

0
View on GitHub↗
10,426 نجوم·848 تفرعات·Rust·MIT·7 مشاهدات

Nom

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 required to complete a result.

Its capabilities cover a wide range of parsing domains, including the construction of abstract syntax trees for programming languages, the processing of structured text and escaped characters, and the extraction of length-prefixed or delimited binary data. The system includes higher-order primitives for sequencing, branching, and repeating parsing logic, as well as tools for operator precedence handling and input pattern validation.

The library provides descriptive error generation to pinpoint the exact location of parsing failures through error codes and input pointers.

Features

  • Parser Combinator Frameworks - Provides a comprehensive framework for building complex parsers by combining small, reusable parsing functions in Rust.
  • Parser Combinators - Implements a functional architectural pattern where complex grammars are built by combining small, reusable parsing functions.
  • Combinator-Based Composition - Chains multiple parsers together to match sequences while discarding delimiters or assembling results into tuples.
  • Streaming Data Processing - Processes data arriving in chunks and signals when more input is required for a result.
  • Zero-Copy Array Slicing - Efficiently extracts sub-sections of input without duplicating the underlying data to minimize memory overhead.
  • Zero-Copy Data Access - Parses large inputs by returning slices of the original data to avoid memory allocation.
  • Zero-Copy Parsing - Minimizes memory overhead by returning slices of the original input instead of allocating new memory during parsing.
  • Bit-Level Binary Parsers - Provides tools for extracting data from binary streams using bit-level logic and pattern recognition.
  • Bitstream Processing Libraries - Treats byte slices as bit streams to extract values of arbitrary bit length.
  • Streaming Input Parsers - Capable of processing partial data chunks and requesting more input when the buffer is exhausted.
  • Binary Integer Extraction - Extracts signed and unsigned integers of various bit-widths using configurable big or little endianness.
  • Parser Behavior Modification - Transforms output via mapping, adds conditional execution, or peeks at input without consuming it.
  • Binary Data Parsers - Tool for extracting typed integers and floating-point numbers from byte slices with configurable endianness.
  • Text Processing and Parsing - Handles UTF-8 strings, case-insensitive comparisons, and escaped characters for structured text formats.
  • Custom Text Format Parsing - Defines rules to recognize and transform structured text, escaped characters, and specific character patterns.
  • Length-Delimited Encodings - Provides binary encoding schemes that prefix data segments with length headers to facilitate efficient parsing.
  • Recursive Descent Parsers - Implements top-down parsing by chaining functions that match patterns and backtrack upon failure.
  • Delimited Data Parsers - Parses sequences of elements separated by a specific delimiter or enclosed within tags.
  • Basic Element Matching - Recognizes low-level tokens such as specific characters, bytes, or case-insensitive strings based on set criteria.
  • Escaped Text Parsing - Matches byte strings containing escaped characters and transforms them into a cleaned representation.
  • Parser Output Transformation - Maps a parser result through a function to convert it into a different type or result.
  • Source Code Abstract Syntax Trees - Builds abstract syntax trees from source code by defining grammar rules and handling operator precedence.
  • Character Classifications - Identifies character sequences based on properties such as alphanumeric, numeric, hexadecimal, or whitespace.
  • Input Type Abstractions - Uses traits to allow the same parsing logic to operate over different input types like byte slices or character streams.
  • Abstract Syntax Tree Parsing - Constructs abstract syntax trees from source code using whitespace handling and error location tracking.
  • Parse Error Reporters - Aggregates error codes and input pointers to pinpoint the exact location of parsing failures.
  • Operator Precedence Management - Parses complex expressions based on a defined set of operator precedence rules.
  • Parser State Tracking - Maintains internal state of the parser to track the remaining input slice and current position.
  • Input Validation - Checks input against regular expressions or custom predicates to ensure it matches specific criteria.

سجل النجوم

مخطط تاريخ النجوم لـ rust-bakery/nomمخطط تاريخ النجوم لـ rust-bakery/nom

بحث بالذكاء الاصطناعي

استكشف المزيد من المستودعات الرائعة

صف ما تحتاجه بلغة بسيطة — وسيقوم الذكاء الاصطناعي بترتيب آلاف المشاريع مفتوحة المصدر المنسقة حسب الصلة.

Start searching with AI

بدائل مفتوحة المصدر لـ Nom

مشاريع مفتوحة المصدر مشابهة، مرتبة حسب عدد الميزات المشتركة مع Nom.
  • geal/nomالصورة الرمزية لـ Geal

    Geal/nom

    10,422عرض على GitHub↗

    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 b

    Rust
    عرض على GitHub↗10,422
  • zesterer/chumskyالصورة الرمزية لـ zesterer

    zesterer/chumsky

    4,545عرض على GitHub↗

    Chumsky is a parser combinator library used to build high-performance parsers by composing small parsing functions into complex grammars. It provides multiple parsing engines, including recursive descent and precedence-climbing implementations for resolving the order of operations in mathematical and logical expressions. The library is distinguished by its zero-copy text parsing, which minimizes memory allocations to increase throughput, and its ability to run without a standard library for use in embedded or resource-constrained environments. It also features an error-recovering parser that

    Rustcontext-free-grammarerrorslexing
    عرض على GitHub↗4,545
  • dtolnay/synالصورة الرمزية لـ dtolnay

    dtolnay/syn

    3,292عرض على GitHub↗

    syn is a Rust syntax tree parser and token stream converter. It serves as a toolkit for procedural macro development, providing a framework to parse Rust source code into structured syntax trees for analysis and transformation. The project enables the manipulation of Rust abstract syntax trees through specialized visitor and folder patterns for traversing and mutating nodes. It provides a bidirectional mapping that allows developers to convert token streams into structured trees and print those trees back into tokens for code generation. The library covers a broad range of syntax analysis ca

    Rustproc-macro
    عرض على GitHub↗3,292
  • pest-parser/pestالصورة الرمزية لـ pest-parser

    pest-parser/pest

    5,355عرض على GitHub↗

    Pest is a Rust parsing library and automatic parser generator that transforms formal grammar definitions into functional parsers. It specializes in Parsing Expression Grammar to recognize and structure complex text patterns, providing a system for context-free grammar parsing. The library implements zero-copy tokenization and static grammar compilation to reduce runtime overhead. It supports no-std runtime compatibility, allowing the parser to be compiled for embedded or bare-metal environments where a standard library is unavailable. The project covers a range of parsing capabilities, inclu

    Rust
    عرض على GitHub↗5,355
عرض جميع البدائل الـ 30 لـ Nom→

الأسئلة الشائعة

ما هي وظيفة rust-bakery/nom؟

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.

ما هي الميزات الرئيسية لـ rust-bakery/nom؟

الميزات الرئيسية لـ rust-bakery/nom هي: Parser Combinator Frameworks, Parser Combinators, Combinator-Based Composition, Streaming Data Processing, Zero-Copy Array Slicing, Zero-Copy Data Access, Zero-Copy Parsing, Bit-Level Binary Parsers.

ما هي البدائل مفتوحة المصدر لـ rust-bakery/nom؟

تشمل البدائل مفتوحة المصدر لـ rust-bakery/nom: geal/nom — nom is a Rust parser combinator framework used to build complex parsers for binary and text data. It functions as an… zesterer/chumsky — Chumsky is a parser combinator library used to build high-performance parsers by composing small parsing functions… dtolnay/syn — syn is a Rust syntax tree parser and token stream converter. It serves as a toolkit for procedural macro development,… pest-parser/pest — Pest is a Rust parsing library and automatic parser generator that transforms formal grammar definitions into… hardmath123/nearley — Nearley is a JavaScript parser toolkit used to define context-free grammars and generate corresponding parsers. It… rapidsai/cudf — cuDF is a GPU-accelerated dataframe library and data processing engine designed for manipulating and analyzing large…