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

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
pest-parser avatar

pest-parser/pest

0
View on GitHub↗
5,355 stars·291 forks·Rust·Apache-2.0·22 viewspest.rs↗

Pest

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, including the extraction of nested token pairs and automated syntax validation. It is used for implementing domain-specific languages, custom language parsing, and mathematical expression evaluation. It also provides automated error reporting to identify unexpected tokens or missing input.

Features

  • PEG Grammar Parsers - Implements a Parsing Expression Grammar (PEG) engine to ensure unambiguous derivation of input text.
  • Custom Text Format Parsing - Enables the definition of grammar rules to transform raw text into structured data for custom formats.
  • Domain Specific Languages - Facilitates the implementation of custom languages with specific rules and syntax for application domains.
  • No-Standard-Library Modes - Supports operation in environments without a standard library by omitting system-level dependencies.
  • Rust Parsing Libraries - Provides a comprehensive Rust library for building language parsers with no-std support.
  • Formal Grammar Parser Generators - Automatically generates a functional parser implementation and error reporting from a defined formal grammar.
  • Grammar-Based Parsers - Recognizes and structures complex text patterns using declarative context-free grammar files.
  • Recursive Descent Parsers - Utilizes recursive descent execution to match input patterns against the defined grammar hierarchy.
  • Parse Tree Extractions - Provides a hierarchical tree of rule names and byte offsets for efficient traversal of parsed input.
  • Syntax Validation - Checks input text against a formal grammar to identify syntax violations and report unexpected tokens.
  • Zero-Copy Parsing - Processes input streams using pointers to original text slices to eliminate unnecessary memory allocations.
  • Grammar Compilation - Transforms formal grammar definitions into optimized internal representations during the build process.
  • General Purpose Embedded Parsing - Implements text parsing in restricted hardware environments by compiling without the standard library.
  • Embedded System Compilations - Allows the parser to be compiled for embedded or bare-metal environments where a standard library is unavailable.
  • Parse Error Reporters - Generates automatic error messages based on grammar definitions to identify unexpected tokens or missing input.
  • Parser Generators - PEG parser generator for Rust.

Star history

Star history chart for pest-parser/pestStar history chart for pest-parser/pest

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Pest

These projects share indexed features with Pest. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • pegjs/pegjspegjs avatar

    pegjs/pegjs

    4,908View on GitHub↗

    PegJS is a parsing expression grammar tool and JavaScript parser generator. It functions as a grammar compiler that transforms formal grammar specifications into executable JavaScript code for analyzing structured text and processing complex input strings. The system generates deterministic parsers that avoid the ambiguity of context-free grammars. It utilizes a packrat parsing model with memoization to ensure linear time complexity and employs recursive descent parsing to process input in a top-down hierarchical manner. The toolset supports the implementation of domain-specific languages an

    JavaScript
    View on GitHub↗4,908
  • kach/nearleykach avatar

    kach/nearley

    3,740View on GitHub↗

    Nearley is a JavaScript parser toolkit and context-free grammar compiler. It functions as an Earley parser generator that transforms BNF-like grammar definitions into executable code capable of analyzing text and generating abstract syntax trees. The project is distinguished by its ability to handle any context-free grammar, including those with left recursion and ambiguity, by maintaining multiple valid derivations for a single input. It further supports incremental parsing, allowing input strings to be processed in chunks to provide partial results and real-time feedback. Beyond core parsi

    JavaScript
    View on GitHub↗3,740
  • rust-bakery/nomrust-bakery avatar

    rust-bakery/nom

    10,426View on 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
    View on GitHub↗10,426
  • ohmjs/ohmohmjs avatar

    ohmjs/ohm

    5,471View on GitHub↗

    Ohm is a formal grammar parser generator and domain-specific language framework. It provides a system for defining custom languages to parse, validate, and extract data from input text, transforming raw strings into hierarchical abstract syntax trees based on specified formal rules. The project utilizes an Earley parsing algorithm, which allows it to support all context-free grammars, including those with left recursion and ambiguity, without requiring predefined operator precedence. It also includes a dedicated debugging toolkit for tracing and visualizing the step-by-step state transitions

    JavaScriptcompilergrammarsjavascript
    View on GitHub↗5,471
Compare all 30 related projects→

Frequently asked questions

What does pest-parser/pest do?

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.

What are the main features of pest-parser/pest?

The main features of pest-parser/pest are: PEG Grammar Parsers, Custom Text Format Parsing, Domain Specific Languages, No-Standard-Library Modes, Rust Parsing Libraries, Formal Grammar Parser Generators, Grammar-Based Parsers, Recursive Descent Parsers.

Which projects share features with pest-parser/pest?

Projects with overlapping indexed features include: pegjs/pegjs — PegJS is a parsing expression grammar tool and JavaScript parser generator. It functions as a grammar compiler that… kach/nearley — Nearley is a JavaScript parser toolkit and context-free grammar compiler. It functions as an Earley parser generator… rust-bakery/nom — nom is a parser combinator framework for Rust used to build complex parsers by combining small, reusable parsing… ohmjs/ohm — Ohm is a formal grammar parser generator and domain-specific language framework. It provides a system for defining… hardmath123/nearley — Nearley is a JavaScript parser toolkit used to define context-free grammars and generate corresponding parsers. It… janet-lang/janet — Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an…