Skip to content
@pest-parser

pest

The Elegant Parser

pest. The Elegant Parser

Join the chat at https://gitter.im/pest-parser/pest Book Docs

pest Continuous Integration codecov Rustc Version 1.56.1+

Crates.io Crates.io

pest is a general purpose parser written in Rust with a focus on accessibility, correctness, and performance. It uses parsing expression grammars (or PEG) as input, which are similar in spirit to regular expressions, but which offer the enhanced expressivity needed to parse complex languages.

Getting started

The recommended way to start parsing with pest is to read the official book.

Other helpful resources:

Repositories

The pest-parser GitHub organization hosts several repositories. The main one is naturally pest where you can find the source code of main pest-related crates.

The pest.rs website is spanned across two repositories:

  • book contains the source code for building the book on pest.rs.
  • site contains the source code for bundling the book with the rest of the website source code (both the playground and the homepage)

There are two tooling-related pest crates:

  • pest-fmt can help to format pest grammars (try it online).
  • ast can help to reduce boilerplate when converting pest parse trees to abstract syntax trees (BTW the pest_consume crate can also help with the parse tree traversing boilerplate).
  • tree-sitter-pest Pest grammar for the tree-sitter.

There are editor plugins for pest:

  • pest.vim can do syntax highlighting of pest grammars in Vim.
  • intellij-pest can do syntax highlighting, completion, refactoring (renaming, extracting rules, inlining) in IntelliJ editors, such as IDEA or CLion, of pest grammars in both external files and in ones embedded in Rust.
  • vscode-pest Pest support for VS Code, via the LSP.
  • zed-pest Pest support for Zed.

Finally, pest3 contains an unfinished effort of pest 3.0 that is stalled for now. You can follow the future progress on this milestone here: feel free to comment on its issues or open a discussion thread.

Projects using pest

You can find more projects and ecosystem tools in the awesome-pest repo.

Pinned Loading

  1. pest pest Public

    The Elegant Parser

    Rust 4.7k 262

  2. book book Public

    pest book

    JavaScript 46 34

  3. site site Public

    This repo contains the source code for https://pest.rs

    CSS 13 16

Repositories

Showing 10 of 15 repositories
  • ast Public
    pest-parser/ast’s past year of commit activity
    Rust 83 Apache-2.0 15 15 (3 issues need help) 0 Updated Dec 20, 2024
  • pest Public

    The Elegant Parser

    pest-parser/pest’s past year of commit activity
    Rust 4,705 Apache-2.0 262 60 2 Updated Dec 7, 2024
  • pest3 Public

    WIP pest 3.0

    pest-parser/pest3’s past year of commit activity
    Rust 11 Apache-2.0 4 5 (4 issues need help) 1 Updated Oct 21, 2024
  • awesome-pest Public

    A curated list of resources, projects, and tools using or for the pest parser generator in Rust

    pest-parser/awesome-pest’s past year of commit activity
    78 CC0-1.0 4 0 0 Updated Sep 26, 2024
  • site Public

    This repo contains the source code for https://pest.rs

    pest-parser/site’s past year of commit activity
    CSS 13 Apache-2.0 16 10 (3 issues need help) 1 Updated Sep 12, 2024
  • pest-ide-tools Public

    IDE tools for writing pest grammars, using the Language Server Protocol for Visual Studio Code, Vim and other editors

    pest-parser/pest-ide-tools’s past year of commit activity
    Rust 52 Apache-2.0 8 8 10 Updated Sep 9, 2024
  • book Public

    pest book

    pest-parser/book’s past year of commit activity
    JavaScript 46 Apache-2.0 34 4 0 Updated Sep 4, 2024
  • pest.vim Public

    Vim syntax highlighting for pest PEG grammar files.

    pest-parser/pest.vim’s past year of commit activity
    Vim Script 33 MIT 8 2 0 Updated Apr 25, 2024
  • pest-fmt Public
    pest-parser/pest-fmt’s past year of commit activity
    Rust 25 MPL-2.0 5 3 1 Updated Apr 8, 2024
  • zed-extensions Public Forked from zed-industries/extensions

    Extensions for the Zed editor

    pest-parser/zed-extensions’s past year of commit activity
    JavaScript 0 440 0 0 Updated Mar 28, 2024

Sponsors

  • @getsentry
  • @mrhenry
  • @coderabbitai
  • @NyalephTheCat
  • @twitchax
  • @sassman
  • @1e1f

Top languages

Loading…

Most used topics

Loading…