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
zesterer avatar

zesterer/chumskyArchived

0
View on GitHub↗
4,545 stars·208 forks·Rust·MIT·28 viewscodeberg.org/zesterer/chumsky↗

Chumsky

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 identifies malformed input and resumes processing to report multiple syntax errors in a single pass.

The framework covers a broad range of capabilities, including context-sensitive state management, recursive grammar support, and the integration of regular expression patterns. It includes tools for parser structure analysis, node inspection, and result caching to support backtracking and left recursion.

The library supports the development of custom languages, data format parsing, and programming language tooling.

Features

  • Parser Combinators - Provides a functional parser combinator library for building complex grammars by composing small, reusable parsing functions.
  • Recursive Descent Parsers - Provides a recursive descent parsing engine that translates source code into syntax trees using recursive function calls.
  • Zero-Copy Parsing - Implements zero-copy parsing by returning slices of the original input buffer instead of allocating new memory for extracted text.
  • Environment Support Managers - Provides environment support that enables the library to run without a standard library in restricted systems.
  • No-Std Environment Adapters - Offers compatibility for environments without a standard library, enabling high-performance parsing in restricted or embedded systems.
  • Expression Order Resolution - Utilizes a precedence-climbing approach to resolve the order of operations in complex expressions.
  • Parsing Error Recovery - Provides mechanisms to recover from syntax errors by skipping invalid tokens and continuing to parse the input.
  • Data Formats and Parsing - Provides tools for parsing various structured data formats by combining regular expressions and logic-based combinators.
  • High-Performance Text Processing - Enables high-performance text processing optimized for low memory and high throughput in resource-constrained environments.
  • Token-Based Stream Parsing - Converts character-based input streams into typed tokens using specialized stream extensions.
  • Programming Language Development - Serves as a framework for programming language development, supporting the creation of compilers and interpreters.
  • Regex-Combinator Integrations - Combines regular expression patterns with combinators to recognize flexible text patterns within a larger grammar.
  • Memoization Caches - Utilizes memoization caches to store previous parsing results, eliminating redundant computations and supporting left-recursive grammars.
  • Operator Precedence Management - Implements operator precedence management to resolve the correct order of operations in complex mathematical and logical expressions.
  • Parser Result Memoization - Stores expensive lookup results to speed up backtracking and support the processing of left-recursive grammars.
  • Parsing Contexts - Supports context-sensitive parsing by tracking external state, enabling the handling of syntaxes like semantic indentation.
  • Error-Resilient Parsers - Implements an error-resilient parsing engine that maintains structural integrity when encountering malformed input.
  • Custom Parser Development - Supports the development of custom parsers by defining formal grammars to derive structured representations of text.

Star history

Star history chart for zesterer/chumskyStar history chart for zesterer/chumsky

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

Frequently asked questions

What does zesterer/chumsky do?

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.

What are the main features of zesterer/chumsky?

The main features of zesterer/chumsky are: Parser Combinators, Recursive Descent Parsers, Zero-Copy Parsing, Environment Support Managers, No-Std Environment Adapters, Expression Order Resolution, Parsing Error Recovery, Data Formats and Parsing.

Which projects share features with zesterer/chumsky?

Projects with overlapping indexed features include: rust-bakery/nom — nom is a parser combinator framework for Rust used to build complex parsers by combining small, reusable parsing… harc/ohm — Ohm is a compiler construction toolkit and parser combinator library used to build parsers, interpreters, and… dullabs/bhai-lang — Bhai-lang is a TypeScript-based toy programming language and custom syntax interpreter. It functions as an educational… alecthomas/participle — Participle is a Go parser generator and toolkit for building language frontends. It provides a declarative grammar… pegjs/pegjs — PegJS is a parsing expression grammar tool and JavaScript parser generator. It functions as a grammar compiler that… pest-parser/pest — Pest is a Rust parsing library and automatic parser generator that transforms formal grammar definitions into…

Projects sharing features with Chumsky

These projects share indexed features with Chumsky. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • 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
  • harc/ohmharc avatar

    harc/ohm

    5,530View on GitHub↗

    Ohm is a compiler construction toolkit and parser combinator library used to build parsers, interpreters, and compilers. It provides a formal grammar language for specifying the structural rules of data formats to ensure precise parsing of input strings. The project functions as a parsing debugging tool and program execution visualizer. It generates text traces and graphical visualizations to show the step-by-step logic used during parsing and renders runtime state changes and method call hierarchies. The toolkit covers custom parser development and the construction of compilers and interpre

    JavaScript
    View on GitHub↗5,530
  • dullabs/bhai-langDulLabs avatar

    DulLabs/bhai-lang

    4,100View on GitHub↗

    Bhai-lang is a TypeScript-based toy programming language and custom syntax interpreter. It functions as an educational language implementation designed to demonstrate core concepts of variable management, conditional logic, and execution flow. The project provides a custom command line interface and an interactive code playground for writing and testing scripts. It serves as a framework for programming language prototyping, allowing for the definition of custom syntax and execution logic. The system covers the full interpreter pipeline, including lexical analysis, recursive descent parsing,

    TypeScriptinterpreterjavascriptparser
    View on GitHub↗4,100
  • alecthomas/participlealecthomas avatar

    alecthomas/participle

    3,869View on GitHub↗

    Participle is a Go parser generator and toolkit for building language frontends. It provides a declarative grammar framework that uses reflection and struct tags to map input patterns directly into typed data structures. The library features a stateful lexical analyzer that employs state machines to handle nested or modal patterns. It includes a lexer code generator to produce optimized code, reducing runtime memory allocations and increasing throughput. The project covers recursive descent parsing with support for union types via sealed interfaces and custom parsing logic through interface-

    Goastebnfgo
    View on GitHub↗3,869
  • Compare all 30 related projects→