{"id":79,"url":"https://github.com/pest-parser/awesome-pest","last_synced_at":"2025-07-26T19:31:47.252Z","repository":{"id":152228141,"uuid":"610194360","full_name":"pest-parser/awesome-pest","owner":"pest-parser","description":"A curated list of resources, projects, and tools using or for the pest parser generator in Rust","archived":false,"fork":false,"pushed_at":"2024-09-26T08:03:16.000Z","size":49,"stargazers_count":74,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-10-29T14:22:29.310Z","etag":null,"topics":["awesome","awesome-list","awesome-lists","list","parsing","peg","pest","rust"],"latest_commit_sha":null,"homepage":"https://pest.rs","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pest-parser.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-06T09:32:48.000Z","updated_at":"2024-10-25T18:43:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"8f6dfe38-0b27-4888-b7a9-8f34024e2a1c","html_url":"https://github.com/pest-parser/awesome-pest","commit_stats":{"total_commits":19,"total_committers":5,"mean_commits":3.8,"dds":"0.21052631578947367","last_synced_commit":"b8725f983e5a8662360e216f97bd4e3531280fb6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pest-parser%2Fawesome-pest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pest-parser%2Fawesome-pest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pest-parser%2Fawesome-pest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pest-parser%2Fawesome-pest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pest-parser","download_url":"https://codeload.github.com/pest-parser/awesome-pest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226540519,"owners_count":17648436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","awesome-lists","list","parsing","peg","pest","rust"],"created_at":"2024-01-05T20:12:45.752Z","updated_at":"2025-07-26T19:31:47.237Z","avatar_url":"https://github.com/pest-parser.png","language":null,"funding_links":[],"categories":["Programming Languages","Other Lists","Themed Directories","Others"],"sub_categories":["TeX Lists","Updated in the last year"],"readme":"# Awesome Pest. The Elegant Parser [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\n[\u003cimg src=\"https://avatars.githubusercontent.com/u/26044607\" align=\"right\" width=\"100\"\u003e](https://github.com/pest-parser/pest/)\n\n\u003e A curated list of resources, projects, and tools using or for the pest parser generator in Rust\n\npest is a general purpose parser written in Rust with a focus on accessibility, correctness, and performance. It uses parsing expression grammars (or [PEG](https://en.wikipedia.org/wiki/Parsing_expression_grammar)) as input, which are similar in spirit to regular expressions, but which offer the enhanced expressivity needed to parse complex languages.\n\nContributions welcome! Read the [contribution guidelines](contributing.md) first.\n\n## Contents\n\n- [Resources](#resources)\n- [Projects](#projects)\n- [Tooling](#tooling)\n\n## Resources\n\n- [Book](https://pest.rs/book) - The recommended way to start parsing with pest is to read this official book.\n- [API reference on docs.rs](https://docs.rs/pest)\n- [fiddle editor on pest.rs](https://pest.rs/#editor) - Play with grammars and share them on the official website (and format them!).\n- [Gitter](https://gitter.im/pest-parser/pest)\n- [Discord](https://discord.gg/XEGACtWpT2)\n- [GitHub Discussions](https://github.com/pest-parser/pest/discussions)\n\n## Projects\n\nHere are some example projects using pest:\n\n- [pest_meta](https://github.com/pest-parser/pest/blob/master/meta/src/grammar.pest) - The pest itself is bootstrapped using pest.\n- [AshPaper](https://github.com/shnewto/ashpaper) - Rust Inpterpreter for Esopo language AshPaper conceived by William Hicks.\n- [cicada](https://github.com/mitnk/cicada) - An old-school bash-like Unix shell written in Rust.\n- [comrak](https://github.com/kivikakk/comrak) - CommonMark + GFM compatible Markdown parser and renderer.\n- [elastic-rs](https://github.com/cch123/elastic-rs) - Convert bool expressions to Elasticsearch DSL in Rust.\n- [handlebars-rust](https://github.com/sunng87/handlebars-rust) - Rust templating with Handlebars.\n- [hexdino](https://github.com/Luz/hexdino) - A hex editor with vim like keybindings written in Rust.\n- [insta](https://github.com/mitsuhiko/insta) - A snapshot testing library for rust.\n- [jql](https://github.com/yamafaktory/jql) - A JSON Query Language CLI tool.\n- [json5-rs](https://github.com/callum-oakley/json5-rs) - A Rust JSON5 serializer and deserializer which speaks Serde.\n- [mt940](https://github.com/svenstaro/mt940-rs) - A MT940 parser in Rust.\n- [py_literal](https://github.com/jturner314/py_literal) - Rust crate for parsing/formatting Python literals.\n- [rouler](https://github.com/jarcane/rouler) - An easy to use dice rolling library for Rust.\n- [RuSh](https://github.com/lwandrebeck/RuSh) - RuSh aims to be a bash compatible shell with candies, written in Rust.\n- [rs_pbrt](https://github.com/wahn/rs_pbrt) - Rust crate to implement a counterpart to the PBRT book's (3rd edition) C++ code.\n- [stache](https://github.com/dgraham/stache) - A Mustache template compiler.\n- [tera](https://github.com/Keats/tera) - A template engine for Rust based on Jinja2/Django.\n- [ZoKrates](https://github.com/ZoKrates/ZoKrates) - A toolbox for zkSNARKs on Ethereum.\n- [Vector](https://github.com/timberio/vector) - A high-performance observability data pipeline.\n- [AutoCorrect](https://github.com/huacnlee/autocorrect) - A linter and formatter to help you to improve copywriting, correct spaces, words, and punctuations between CJK (Chinese, Japanese, Korean).\n- [yaml-peg](https://github.com/aofdev/yaml-peg) - PEG parser for YAML written in Rust.\n- [qubit](https://github.com/abhimanyu003/qubit) - A handy calculator, based on Rust and WebAssembly.\n- [caith](https://github.com/Geobert/caith) - A dice roller crate.\n- [Melody](https://github.com/yoav-lavi/melody) - Melody is a language that compiles to regular expressions and aims to be more easily readable and maintainable.\n- [PTA-Parser](https://github.com/AltaModaTech/pta-parser/) - A Plain Text Accounting parser built in Rust for [Beancount](https://github.com/beancount/beancount), [Ledger](https://github.com/ledger/ledger), and other PTA formats.\n- [Keadex Mina](https://github.com/keadex/keadex) - Open Source, serverless IDE to code with C4-PlantUML and organize at a scale C4 model diagrams.\n- [Liquid Grammar](https://github.com/rust-utilities/liquid-grammar-pest/) - Generate `Pairs` and/or `Rules` for [Shopify](https://shopify.github.io/liquid/) Liquid (hash-tags _not-sponsored_ or _affiliated_) for use in consuming crates\n- [ws2markdown](https://code.rosaelefanten.org/ws2markdown) - Converts WordStar documents into Markdown files.\n\n## Tooling\n\n### IDE Support\n\n- [pest IDE tools](https://github.com/pest-parser/pest-ide-tools) - A main repository with LSP server and VSCode extension.\n- [VSCode Extension](https://marketplace.visualstudio.com/items?itemName=pest.pest-ide-tools)\n- [IntelliJ IDEA Plugin](https://plugins.jetbrains.com/plugin/12046-pest)\n- [pest.vim](https://github.com/pest-parser/pest.vim)\n- [pest-fmt](https://github.com/pest-parser/pest-fmt) - It can help to format\npest grammars.\n- [pest web debugger](https://github.com/tomtau/pest-web-debug) - Try it [online](https://tomtau.github.io/pest-web-debug/).\n\n### Boilerplate reduction and testing\n\n- [pest-ast](https://github.com/pest-parser/ast) - It can help to reduce boilerplate when converting pest parse trees to abstract syntax trees.\n- [pest_consume](https://crates.io/crates/pest_consume) - This crate can help with the parse tree traversing boilerplate.\n- [pest-test](https://crates.io/crates/pest-test) - It is a testing framework for pest grammars.\n- [pest_ascii_tree](https://crates.io/crates/pest_ascii_tree) - Output `Pairs` in a tree on the console\n\n### CLI Debugger\n\n- [pest_debugger](https://docs.rs/pest_debugger/latest/pest_debugger/) - It is a crate for debugging pest grammars. It can be used as a CLI tool or as a library. [See instructions for using the CLI debugger](debugger.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpest-parser%2Fawesome-pest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpest-parser%2Fawesome-pest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpest-parser%2Fawesome-pest/lists"}