84 lines
10 KiB
Plaintext
84 lines
10 KiB
Plaintext
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome Pest. The Elegant Parser [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://awesome.re/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://awesome.re)[0m
|
||
|
||
[38;5;12m (https://github.com/pest-parser/pest/)[39m
|
||
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mA curated list of resources, projects, and tools using or for the pest parser generator in Rust[39m
|
||
|
||
[38;5;12mpest[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgeneral[39m[38;5;12m [39m[38;5;12mpurpose[39m[38;5;12m [39m[38;5;12mparser[39m[38;5;12m [39m[38;5;12mwritten[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mRust[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfocus[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12maccessibility,[39m[38;5;12m [39m[38;5;12mcorrectness,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mperformance.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12mparsing[39m[38;5;12m [39m[38;5;12mexpression[39m[38;5;12m [39m[38;5;12mgrammars[39m[38;5;12m [39m[38;5;12m(or[39m[38;5;12m [39m[38;5;14m[1mPEG[0m[38;5;12m [39m[38;5;12m(https://en.wikipedia.org/wiki/Parsing_expression_grammar))[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12minput,[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12msimilar[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m
|
||
[38;5;12mspirit[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mregular[39m[38;5;12m [39m[38;5;12mexpressions,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12moffer[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12menhanced[39m[38;5;12m [39m[38;5;12mexpressivity[39m[38;5;12m [39m[38;5;12mneeded[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mparse[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mlanguages.[39m
|
||
|
||
[38;5;12mContributions welcome! Read the [39m[38;5;14m[1mcontribution guidelines[0m[38;5;12m (contributing.md) first.[39m
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mResources[0m[38;5;12m (#resources)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mProjects[0m[38;5;12m (#projects)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTooling[0m[38;5;12m (#tooling)[39m
|
||
|
||
[38;2;255;187;0m[4mResources[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBook[0m[38;5;12m (https://pest.rs/book) - The recommended way to start parsing with pest is to read this official book.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAPI reference on docs.rs[0m[38;5;12m (https://docs.rs/pest)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mfiddle editor on pest.rs[0m[38;5;12m (https://pest.rs/#editor) - Play with grammars and share them on the official website (and format them!).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mGitter[0m[38;5;12m (https://gitter.im/pest-parser/pest)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mDiscord[0m[38;5;12m (https://discord.gg/XEGACtWpT2)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mGitHub Discussions[0m[38;5;12m (https://github.com/pest-parser/pest/discussions)[39m
|
||
|
||
[38;2;255;187;0m[4mProjects[0m
|
||
|
||
[38;5;12mHere are some example projects using pest:[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mpest_meta[0m[38;5;12m (https://github.com/pest-parser/pest/blob/master/meta/src/grammar.pest) - The pest itself is bootstrapped using pest.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAshPaper[0m[38;5;12m (https://github.com/shnewto/ashpaper) - Rust Inpterpreter for Esopo language AshPaper conceived by William Hicks.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mcicada[0m[38;5;12m (https://github.com/mitnk/cicada) - An old-school bash-like Unix shell written in Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mcomrak[0m[38;5;12m (https://github.com/kivikakk/comrak) - CommonMark + GFM compatible Markdown parser and renderer.[39m
|
||
[38;5;12m- [39m[38;5;14m[1melastic-rs[0m[38;5;12m (https://github.com/cch123/elastic-rs) - Convert bool expressions to Elasticsearch DSL in Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mhandlebars-rust[0m[38;5;12m (https://github.com/sunng87/handlebars-rust) - Rust templating with Handlebars.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mhexdino[0m[38;5;12m (https://github.com/Luz/hexdino) - A hex editor with vim like keybindings written in Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1minsta[0m[38;5;12m (https://github.com/mitsuhiko/insta) - A snapshot testing library for rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mjql[0m[38;5;12m (https://github.com/yamafaktory/jql) - A JSON Query Language CLI tool.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mjson5-rs[0m[38;5;12m (https://github.com/callum-oakley/json5-rs) - A Rust JSON5 serializer and deserializer which speaks Serde.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmt940[0m[38;5;12m (https://github.com/svenstaro/mt940-rs) - A MT940 parser in Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpy_literal[0m[38;5;12m (https://github.com/jturner314/py_literal) - Rust crate for parsing/formatting Python literals.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mrouler[0m[38;5;12m (https://github.com/jarcane/rouler) - An easy to use dice rolling library for Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mRuSh[0m[38;5;12m (https://github.com/lwandrebeck/RuSh) - RuSh aims to be a bash compatible shell with candies, written in Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mrs_pbrt[0m[38;5;12m (https://github.com/wahn/rs_pbrt) - Rust crate to implement a counterpart to the PBRT book's (3rd edition) C++ code.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mstache[0m[38;5;12m (https://github.com/dgraham/stache) - A Mustache template compiler.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtera[0m[38;5;12m (https://github.com/Keats/tera) - A template engine for Rust based on Jinja2/Django.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mZoKrates[0m[38;5;12m (https://github.com/ZoKrates/ZoKrates) - A toolbox for zkSNARKs on Ethereum.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mVector[0m[38;5;12m (https://github.com/timberio/vector) - A high-performance observability data pipeline.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAutoCorrect[0m[38;5;12m (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).[39m
|
||
[38;5;12m- [39m[38;5;14m[1myaml-peg[0m[38;5;12m (https://github.com/aofdev/yaml-peg) - PEG parser for YAML written in Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mqubit[0m[38;5;12m (https://github.com/abhimanyu003/qubit) - A handy calculator, based on Rust and WebAssembly.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mcaith[0m[38;5;12m (https://github.com/Geobert/caith) - A dice roller crate.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mMelody[0m[38;5;12m (https://github.com/yoav-lavi/melody) - Melody is a language that compiles to regular expressions and aims to be more easily readable and maintainable.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPTA-Parser[0m[38;5;12m (https://github.com/AltaModaTech/pta-parser/) - A Plain Text Accounting parser built in Rust for [39m[38;5;14m[1mBeancount[0m[38;5;12m (https://github.com/beancount/beancount), [39m[38;5;14m[1mLedger[0m[38;5;12m (https://github.com/ledger/ledger), and other PTA formats.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mKeadex Mina[0m[38;5;12m (https://github.com/keadex/keadex) - Open Source, serverless IDE to code with C4-PlantUML and organize at a scale C4 model diagrams.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLiquid Grammar[0m[38;5;12m (https://github.com/rust-utilities/liquid-grammar-pest/) - Generate [39m[48;5;235m[38;5;249mPairs[49m[39m[38;5;12m and/or [39m[48;5;235m[38;5;249mRules[49m[39m[38;5;12m for [39m[38;5;14m[1mShopify[0m[38;5;12m (https://shopify.github.io/liquid/) Liquid (hash-tags _not-sponsored_ or _affiliated_) for use in consuming crates[39m
|
||
[38;5;12m- [39m[38;5;14m[1mws2markdown[0m[38;5;12m (https://code.rosaelefanten.org/ws2markdown) - Converts WordStar documents into Markdown files.[39m
|
||
|
||
[38;2;255;187;0m[4mTooling[0m
|
||
|
||
[38;2;255;187;0m[4mIDE Support[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mpest IDE tools[0m[38;5;12m (https://github.com/pest-parser/pest-ide-tools) - A main repository with LSP server and VSCode extension.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mVSCode Extension[0m[38;5;12m (https://marketplace.visualstudio.com/items?itemName=pest.pest-ide-tools)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mIntelliJ IDEA Plugin[0m[38;5;12m (https://plugins.jetbrains.com/plugin/12046-pest)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpest.vim[0m[38;5;12m (https://github.com/pest-parser/pest.vim)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpest-fmt[0m[38;5;12m (https://github.com/pest-parser/pest-fmt) - It can help to format[39m
|
||
[38;5;12mpest grammars.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpest web debugger[0m[38;5;12m (https://github.com/tomtau/pest-web-debug) - Try it [39m[38;5;14m[1monline[0m[38;5;12m (https://tomtau.github.io/pest-web-debug/).[39m
|
||
|
||
[38;2;255;187;0m[4mBoilerplate reduction and testing[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mpest-ast[0m[38;5;12m (https://github.com/pest-parser/ast) - It can help to reduce boilerplate when converting pest parse trees to abstract syntax trees.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpest_consume[0m[38;5;12m (https://crates.io/crates/pest_consume) - This crate can help with the parse tree traversing boilerplate.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpest-test[0m[38;5;12m (https://crates.io/crates/pest-test) - It is a testing framework for pest grammars.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpest_ascii_tree[0m[38;5;12m (https://crates.io/crates/pest_ascii_tree) - Output [39m[48;5;235m[38;5;249mPairs[49m[39m[38;5;12m in a tree on the console[39m
|
||
|
||
[38;2;255;187;0m[4mCLI Debugger[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mpest_debugger[0m[38;5;12m (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. [39m[38;5;14m[1mSee instructions for using the CLI debugger[0m[38;5;12m (debugger.md).[39m
|
||
|
||
[38;5;12mpest Github: https://github.com/pest-parser/awesome-pest[39m
|