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·19 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 were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. 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

Open-source alternatives to Pest

Similar open-source projects, ranked by how many features they share with Pest.
  • 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
See all 30 alternatives to Pest→

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.

What are some open-source alternatives to pest-parser/pest?

Open-source alternatives to pest-parser/pest 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…