Skip to content

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

License

Notifications You must be signed in to change notification settings

pest-parser/awesome-pest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Pest. The Elegant Parser Awesome

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

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.

Contributions welcome! Read the contribution guidelines first.

Contents

Resources

Projects

Here are some example projects using pest:

  • pest_meta - The pest itself is bootstrapped using pest.
  • AshPaper - Rust Inpterpreter for Esopo language AshPaper conceived by William Hicks.
  • cicada - An old-school bash-like Unix shell written in Rust.
  • comrak - CommonMark + GFM compatible Markdown parser and renderer.
  • elastic-rs - Convert bool expressions to Elasticsearch DSL in Rust.
  • handlebars-rust - Rust templating with Handlebars.
  • hexdino - A hex editor with vim like keybindings written in Rust.
  • insta - A snapshot testing library for rust.
  • jql - A JSON Query Language CLI tool.
  • json5-rs - A Rust JSON5 serializer and deserializer which speaks Serde.
  • mt940 - A MT940 parser in Rust.
  • py_literal - Rust crate for parsing/formatting Python literals.
  • rouler - An easy to use dice rolling library for Rust.
  • RuSh - RuSh aims to be a bash compatible shell with candies, written in Rust.
  • rs_pbrt - Rust crate to implement a counterpart to the PBRT book's (3rd edition) C++ code.
  • stache - A Mustache template compiler.
  • tera - A template engine for Rust based on Jinja2/Django.
  • ZoKrates - A toolbox for zkSNARKs on Ethereum.
  • Vector - A high-performance observability data pipeline.
  • AutoCorrect - A linter and formatter to help you to improve copywriting, correct spaces, words, and punctuations between CJK (Chinese, Japanese, Korean).
  • yaml-peg - PEG parser for YAML written in Rust.
  • qubit - A handy calculator, based on Rust and WebAssembly.
  • caith - A dice roller crate.
  • Melody - Melody is a language that compiles to regular expressions and aims to be more easily readable and maintainable.
  • PTA-Parser - A Plain Text Accounting parser built in Rust for Beancount, Ledger, and other PTA formats.
  • Keadex Mina - Open Source, serverless IDE to code with C4-PlantUML and organize at a scale C4 model diagrams.
  • Liquid Grammar - Generate Pairs and/or Rules for Shopify Liquid (hash-tags not-sponsored or affiliated) for use in consuming crates

Tooling

IDE Support

Boilerplate reduction and testing

  • pest-ast - It can help to reduce boilerplate when converting pest parse trees to abstract syntax trees.
  • pest_consume - This crate can help with the parse tree traversing boilerplate.
  • pest-test - It is a testing framework for pest grammars.
  • pest_ascii_tree - Output Pairs in a tree on the console

CLI Debugger