pest-parser/pest

The Elegant Parser

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 51 minutes ago
Added to GitGenius on September 12th, 2026
Created on April 24th, 2016
Open Issues & Pull Requests: 66 (+0)
GitHub issues: Enabled
Number of forks: 307
Total Stargazers: 5,397 (+0)
Total Subscribers: 42 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 9.0 hours
Mean response time: 162.1 days
90th percentile: 670.8 days
Tracked items: 40

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Work labelled "bug" is answered fastest, typically in about 9 hours, while "help-wanted" waits about 5 days. Only 9% of issues opened in the past year have been closed. Three people close 81% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 977 days
Stale 30+ days: 8
Stale 90+ days: 8

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (25)
  • help-wanted (11)
  • good-first-issue (7)
  • enhancement (5)
  • needs-decision (3)
  • generator (2)
  • grammar (2)
  • hacktoberfest (2)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

pest is a parser generator written in Rust that uses parsing expression grammars to build parsers for complex languages.

pest addresses the problem of writing correct parsers by letting developers define language syntax in separate .pest grammar files using a PEG-based syntax similar to regular expressions but with greater expressivity. The parser is then automatically derived from the grammar definition. This separation keeps the grammar formalized and maintainable alongside the procedural code. The tool generates meaningful error messages automatically based on the grammar, showing the input that failed to parse and what was expected at that point.

pest suits projects where you need to parse structured text or domain-specific languages and want a clear, readable grammar definition. It works well for developers who value having the language specification as a separate, easy-to-understand artifact. The tool runs on stable Rust and supports features like precedence climbing for operator parsing and custom error handling. It is appropriate for cases where you want automatic error reporting without manual implementation.

The project maintains active community engagement through multiple channels including a book for getting started, an interactive fiddle for experimenting with grammars, GitHub Discussions for questions, and chat communities. The codebase demonstrates consistent attention to the grammar file format and parser derivation mechanism, with examples showing how to handle multiple parsers in a single file through namespace organization. Development reflects a focus on the core parsing workflow and the quality of error messages produced by the generated parser.