The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 parser-combinator Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
umbrella
⛱ Broadly scoped ecosystem & mono-repository of 192 TypeScript projects (and 157 examples) for general purpose, functional, data driven development
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
Scala Parser Combinators
simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
-
Syntax
Write value-driven parsers quickly in Swift with an intuitive SwiftUI-like DSL (by nerdsupremacist)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Just in case you are not familiar with nom, it is a parser combinator written in Rust. The most basic thing you can do with it is import one of its parsing functions, give it some byte or string input and then get a Result as output with the parsed value and the rest of the input or an error if the parser failed. tag for example is used to recognize literal character/byte sequences.
Project mention: Lezer: A Parsing System for CodeMirror, Inspired by Tree-Sitter | news.ycombinator.com | 2024-03-24I attempted to use this but was disheartened but the fact that it doesn't statically type node names. Tree Sitter doesn't either but it has much more of an excuse given that it targets C.
https://github.com/lezer-parser/lezer/issues/8
The dev seems mildly hostile to outside involvement too, so I moved on. These days I use Chumsky which is Rust rather than Typescript, but also way more awesome, if you can deal with the often incomprehensible compilation errors at least!
https://github.com/zesterer/chumsky
Project mention: Meet ast-grep: a Rust-based tool for code searching, linting, rewriting using AST | /r/rust | 2023-05-11How does it compare to https://github.com/comby-tools/comby, which can work on languages it doesnt even have grammars for (to a degree)
After over a year since the last release of pyparsing, I've bundled up all the bug-fixes and changes, and they are now released as pyparsing 3.1.0. Visit this link for the details.
Project mention: Show HN: Matcheroni, a tiny C++20 header library for building lexers/parsers | news.ycombinator.com | 2023-07-06Very cool, and I like the name!
I'd be interested in reading about how Matcheroni compares with PEGTL and Lexy.
https://github.com/taocpp/PEGTL
lexy (https://lexy.foonathan.net/)
pigeon https://github.com/benjamin-hodgson/Pidgin
parser-combinators related posts
- Lezer: A Parsing System for CodeMirror, Inspired by Tree-Sitter
- Writing an Equation Solver
- Show HN: Matcheroni, a tiny C++20 header library for building lexers/parsers
- Is this a good way to free up some memory?
- Tokenizing
- Something like pydantic but for just strings?
- Show HN: Monch, a tasty TypeScript parser-combinators library
-
A note from our sponsor - WorkOS
workos.com | 29 Apr 2024
Index
What are some of the best open-source parser-combinator projects? This list will help you:
Project | Stars | |
---|---|---|
1 | nom | 9,007 |
2 | chumsky | 3,327 |
3 | umbrella | 3,213 |
4 | comby | 2,265 |
5 | pyparsing | 2,091 |
6 | PEGTL | 1,867 |
7 | combine | 1,265 |
8 | lexy | 949 |
9 | Pidgin | 828 |
10 | Scala Parser Combinators | 640 |
11 | angstrom | 616 |
12 | arcsecond | 545 |
13 | pom | 484 |
14 | mecha | 392 |
15 | spirit | 377 |
16 | funcparserlib | 336 |
17 | fireward | 236 |
18 | SwiftParsec | 226 |
19 | parsley | 161 |
20 | hspp | 156 |
21 | Syntax | 146 |
22 | agdarsec | 121 |
23 | autumn | 119 |
Sponsored