SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Parser Open-Source Projects
-
MinerU
Transforms complex documents like PDFs and Office docs into LLM-ready markdown/JSON for your Agentic workflows.
The MinerU project has been climbing fast on GitHub, where developers share code, by doing a similar job with one big difference: you run it yourself, for free, on your own machines. It converts complex PDFs and office files into clean markdown and structured data, the tidy formats that AI systems digest easily. Where Mistral's offering is a polished service you pay to call, MinerU is a workhorse you own and control.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
How does Satteri compare to a standard library like marked (https://github.com/markedjs/marked)?
-
-
Project mention: How I Built drift-guard: A CLI to Stop AI Agents from Destroying Your Design | dev.to | 2026-03-12
drift-guard uses css-tree for CSS parsing and cheerio for HTML. It walks the AST and extracts every design-relevant declaration into categorized tokens.
-
Project mention: PostCSS Adopted Staged Publishing. 685M Weekly Downloads Now Gated. | dev.to | 2026-06-27
On June 18, 2026, I filed postcss/postcss#2096 about OIDC provenance for PostCSS. The ai npm account — one person, Andrey Sitnik — publishes PostCSS, nanoid, Autoprefixer, browserslist, and caniuse-lite. Combined: over 900 million weekly downloads through a single publish credential.
-
Project mention: pydantic VS ctxure - a user suggested alternative | libhunt.com/r/pydantic | 2026-06-05
-
Project mention: Architecture Teardown: How Meta Trains LLMs for Code Generation on 100k GPU Clusters | dev.to | 2026-04-29
import hashlib from tree_sitter import Language, Parser # https://github.com/tree-sitter/tree-sitter def normalize_code(content: str, lang: str = \"python\") -> str: parser = Parser() parser.set_language(Language(f\"build/{lang}.so\", lang)) tree = parser.parse(bytes(content, \"utf-8\")) # Return normalized AST string (strip whitespace/comments) return str(tree.root_node) def get_content_hash(content: str) -> str: normalized = normalize_code(content) return hashlib.sha256(normalized.encode(\"utf-8\")).hexdigest()
-
being worked on : https://github.com/oxc-project/oxc/discussions/21936
-
src/Patch/PatchGenerator.php takes a validated MutationRequest and produces a PatchSet of PatchEntry objects. For PHP files, it uses nikic/php-parser via PhpFileBuilder to round-trip through an AST. That means the patch is syntactically valid by construction. You cannot generate a patch that breaks parsing because the patch itself is a parsed tree that gets printed back out.
-
-
jsoup is usually the best first option for static HTML extraction. Its official website describes it as a Java HTML parser for real-world HTML and XML, supporting URL fetching, parsing, DOM traversal, CSS selectors, and XPath selectors jsoup official documentation.
-
Project mention: Making your own programming language is easier than you think (but also harder) | news.ycombinator.com | 2026-05-09
I wish people would start with Nystrom's https://www.craftinginterpreters.com/ and avoid the dragon etc unless they really, really need it. Almost everything I have learnt about compiler/vm development, I have done so by reading random blogs and articles on various aspects and small tutorials on writing parsers and vms.
Even stuff like Crenshaw's Let's Build a Compiler was more useful to me than all these books that do lexical analysis using regular expressions. I have written lexers and parsers hundreds of times for all kinds of DSLs and config and not once have I used regular expressions to scan the text.
-
Rust already has well-established parser combinator libraries like nom and chumsky, so why build another one?
-
Project mention: I rewrote PostHog's SQL parser, 70x faster, while barely looking at the code | news.ycombinator.com | 2026-06-24
-
Terser is the industry standard JavaScript minifier. The --compress flag enables dead code elimination and constant folding. The --mangle flag shortens variable names.
-
-
dasel
Unified querying, transformation, and modification of JSON, TOML, YAML, XML, INI, HCL, KDL and CSV.
-
-
Project mention: Brimstone: ES2025 JavaScript engine written in Rust | news.ycombinator.com | 2025-11-16
It looks like Boa has Unicode tables compiled inside of itself: https://github.com/boa-dev/boa/tree/main/core/icu_provider
Brimstone does not appear to.
That covers the vast bulk of the difference. The ICU data is about 10.7MB in the source (boa/core/icu_provider) and may grow or shrink by some amount in the compiling.
I'm not saying it's all the difference, just the bulk.
There's a few reasons why svelte little executables with small library backings aren't possible anymore, and it isn't just ambient undefined "bloat". Unicode is a big one. Correct handling of unicode involves megabytes of tables and data that have to live somewhere, whether it's a linked library, compiled in, tables on disks, whatever. If a program touches text and it needs to handle it correctly rather than just passing it through, there's a minimum size for that now.
-
MegaParse
File Parser optimised for LLM Ingestion with no loss 🧠 Parse PDFs, Docx, PPTx in a format that is ideal for LLMs.
MegaParse: The ultimate parser for LLMs.
-
Hasn't that already been tried (10+ years ago) with projects like https://github.com/jquery/esprima ? Which have since seen usage dramatically reduced for performance reasons.
-
PDFMiner.six Official Documentation
-
AST Explorer exists, and it's great. I use it regularly. It's the reference tool for exploring ASTs. I wanted to build something similar as part of Kitmul; my own version of an AST visualizer with parser selection, interactive tree view, and support for the parsers I use daily.
Parser discussion
Parser related posts
-
Satteri: A Markdown pipeline forged in Rust for the JavaScript world
-
Astro 7.0
-
GSL: Because Your Architecture Diagrams Should Be Searchable
-
Reading and Stripping EXIF Metadata in the Browser with exifr
-
Bimaaji: agent-safe mutations for Waaseyaa
-
The quiet race to turn messy documents into AI-ready text
-
PostCSS Adopted Staged Publishing. 685M Weekly Downloads Now Gated.
-
A note from our sponsor - SaaSHub
www.saashub.com | 10 Jul 2026
Index
What are some of the best open-source Parser projects? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | MinerU | 73,916 |
| 2 | marked | 36,955 |
| 3 | swc | 34,122 |
| 4 | cheerio | 30,403 |
| 5 | PostCSS | 28,975 |
| 6 | pydantic | 28,188 |
| 7 | tree-sitter | 26,106 |
| 8 | oxc | 21,828 |
| 9 | PHP Parser | 17,440 |
| 10 | Parsedown | 15,056 |
| 11 | jsoup | 11,376 |
| 12 | Crafting Interpreters | 10,732 |
| 13 | nom | 10,428 |
| 14 | sqlglot | 9,398 |
| 15 | terser | 9,308 |
| 16 | sh | 8,875 |
| 17 | dasel | 7,994 |
| 18 | lightningcss | 7,604 |
| 19 | boa | 7,373 |
| 20 | MegaParse | 7,366 |
| 21 | esprima | 7,132 |
| 22 | pdfminer.six | 7,002 |
| 23 | astexplorer | 6,530 |