This commit is contained in:
2025-07-18 23:13:11 +02:00
parent c9485bf576
commit 652812eed0
2354 changed files with 1266414 additions and 1 deletions

152
html/pest.md2.html Normal file
View File

@@ -0,0 +1,152 @@
<h1 id="awesome-pest.-the-elegant-parser-awesome">Awesome Pest. The
Elegant Parser <a href="https://awesome.re"><img
src="https://awesome.re/badge.svg" alt="Awesome" /></a></h1>
<p><a
href="https://github.com/pest-parser/pest/"><img src="https://avatars.githubusercontent.com/u/26044607" align="right" width="100"></a></p>
<blockquote>
<p>A curated list of resources, projects, and tools using or for the
pest parser generator in Rust</p>
</blockquote>
<p>pest is a general purpose parser written in Rust with a focus on
accessibility, correctness, and performance. It uses parsing expression
grammars (or <a
href="https://en.wikipedia.org/wiki/Parsing_expression_grammar">PEG</a>)
as input, which are similar in spirit to regular expressions, but which
offer the enhanced expressivity needed to parse complex languages.</p>
<p>Contributions welcome! Read the <a
href="contributing.md">contribution guidelines</a> first.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#resources">Resources</a></li>
<li><a href="#projects">Projects</a></li>
<li><a href="#tooling">Tooling</a></li>
</ul>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="https://pest.rs/book">Book</a> - The recommended way to
start parsing with pest is to read this official book.</li>
<li><a href="https://docs.rs/pest">API reference on docs.rs</a></li>
<li><a href="https://pest.rs/#editor">fiddle editor on pest.rs</a> -
Play with grammars and share them on the official website (and format
them!).</li>
<li><a href="https://gitter.im/pest-parser/pest">Gitter</a></li>
<li><a href="https://discord.gg/XEGACtWpT2">Discord</a></li>
<li><a href="https://github.com/pest-parser/pest/discussions">GitHub
Discussions</a></li>
</ul>
<h2 id="projects">Projects</h2>
<p>Here are some example projects using pest:</p>
<ul>
<li><a
href="https://github.com/pest-parser/pest/blob/master/meta/src/grammar.pest">pest_meta</a>
- The pest itself is bootstrapped using pest.</li>
<li><a href="https://github.com/shnewto/ashpaper">AshPaper</a> - Rust
Inpterpreter for Esopo language AshPaper conceived by William
Hicks.</li>
<li><a href="https://github.com/mitnk/cicada">cicada</a> - An old-school
bash-like Unix shell written in Rust.</li>
<li><a href="https://github.com/kivikakk/comrak">comrak</a> - CommonMark
+ GFM compatible Markdown parser and renderer.</li>
<li><a href="https://github.com/cch123/elastic-rs">elastic-rs</a> -
Convert bool expressions to Elasticsearch DSL in Rust.</li>
<li><a
href="https://github.com/sunng87/handlebars-rust">handlebars-rust</a> -
Rust templating with Handlebars.</li>
<li><a href="https://github.com/Luz/hexdino">hexdino</a> - A hex editor
with vim like keybindings written in Rust.</li>
<li><a href="https://github.com/mitsuhiko/insta">insta</a> - A snapshot
testing library for rust.</li>
<li><a href="https://github.com/yamafaktory/jql">jql</a> - A JSON Query
Language CLI tool.</li>
<li><a href="https://github.com/callum-oakley/json5-rs">json5-rs</a> - A
Rust JSON5 serializer and deserializer which speaks Serde.</li>
<li><a href="https://github.com/svenstaro/mt940-rs">mt940</a> - A MT940
parser in Rust.</li>
<li><a href="https://github.com/jturner314/py_literal">py_literal</a> -
Rust crate for parsing/formatting Python literals.</li>
<li><a href="https://github.com/jarcane/rouler">rouler</a> - An easy to
use dice rolling library for Rust.</li>
<li><a href="https://github.com/lwandrebeck/RuSh">RuSh</a> - RuSh aims
to be a bash compatible shell with candies, written in Rust.</li>
<li><a href="https://github.com/wahn/rs_pbrt">rs_pbrt</a> - Rust crate
to implement a counterpart to the PBRT books (3rd edition) C++
code.</li>
<li><a href="https://github.com/dgraham/stache">stache</a> - A Mustache
template compiler.</li>
<li><a href="https://github.com/Keats/tera">tera</a> - A template engine
for Rust based on Jinja2/Django.</li>
<li><a href="https://github.com/ZoKrates/ZoKrates">ZoKrates</a> - A
toolbox for zkSNARKs on Ethereum.</li>
<li><a href="https://github.com/timberio/vector">Vector</a> - A
high-performance observability data pipeline.</li>
<li><a href="https://github.com/huacnlee/autocorrect">AutoCorrect</a> -
A linter and formatter to help you to improve copywriting, correct
spaces, words, and punctuations between CJK (Chinese, Japanese,
Korean).</li>
<li><a href="https://github.com/aofdev/yaml-peg">yaml-peg</a> - PEG
parser for YAML written in Rust.</li>
<li><a href="https://github.com/abhimanyu003/qubit">qubit</a> - A handy
calculator, based on Rust and WebAssembly.</li>
<li><a href="https://github.com/Geobert/caith">caith</a> - A dice roller
crate.</li>
<li><a href="https://github.com/yoav-lavi/melody">Melody</a> - Melody is
a language that compiles to regular expressions and aims to be more
easily readable and maintainable.</li>
<li><a href="https://github.com/AltaModaTech/pta-parser/">PTA-Parser</a>
- A Plain Text Accounting parser built in Rust for <a
href="https://github.com/beancount/beancount">Beancount</a>, <a
href="https://github.com/ledger/ledger">Ledger</a>, and other PTA
formats.</li>
<li><a href="https://github.com/keadex/keadex">Keadex Mina</a> - Open
Source, serverless IDE to code with C4-PlantUML and organize at a scale
C4 model diagrams.</li>
<li><a
href="https://github.com/rust-utilities/liquid-grammar-pest/">Liquid
Grammar</a> - Generate <code>Pairs</code> and/or <code>Rules</code> for
<a href="https://shopify.github.io/liquid/">Shopify</a> Liquid
(hash-tags <em>not-sponsored</em> or <em>affiliated</em>) for use in
consuming crates</li>
<li><a href="https://code.rosaelefanten.org/ws2markdown">ws2markdown</a>
- Converts WordStar documents into Markdown files.</li>
</ul>
<h2 id="tooling">Tooling</h2>
<h3 id="ide-support">IDE Support</h3>
<ul>
<li><a href="https://github.com/pest-parser/pest-ide-tools">pest IDE
tools</a> - A main repository with LSP server and VSCode extension.</li>
<li><a
href="https://marketplace.visualstudio.com/items?itemName=pest.pest-ide-tools">VSCode
Extension</a></li>
<li><a href="https://plugins.jetbrains.com/plugin/12046-pest">IntelliJ
IDEA Plugin</a></li>
<li><a href="https://github.com/pest-parser/pest.vim">pest.vim</a></li>
<li><a href="https://github.com/pest-parser/pest-fmt">pest-fmt</a> - It
can help to format pest grammars.</li>
<li><a href="https://github.com/tomtau/pest-web-debug">pest web
debugger</a> - Try it <a
href="https://tomtau.github.io/pest-web-debug/">online</a>.</li>
</ul>
<h3 id="boilerplate-reduction-and-testing">Boilerplate reduction and
testing</h3>
<ul>
<li><a href="https://github.com/pest-parser/ast">pest-ast</a> - It can
help to reduce boilerplate when converting pest parse trees to abstract
syntax trees.</li>
<li><a href="https://crates.io/crates/pest_consume">pest_consume</a> -
This crate can help with the parse tree traversing boilerplate.</li>
<li><a href="https://crates.io/crates/pest-test">pest-test</a> - It is a
testing framework for pest grammars.</li>
<li><a
href="https://crates.io/crates/pest_ascii_tree">pest_ascii_tree</a> -
Output <code>Pairs</code> in a tree on the console</li>
</ul>
<h3 id="cli-debugger">CLI Debugger</h3>
<ul>
<li><a
href="https://docs.rs/pest_debugger/latest/pest_debugger/">pest_debugger</a>
- It is a crate for debugging pest grammars. It can be used as a CLI
tool or as a library. <a href="debugger.md">See instructions for using
the CLI debugger</a>.</li>
</ul>
<p><a href="https://github.com/pest-parser/awesome-pest">pest.md
Github</a></p>