Open-source parsers software
444 open-source libraries, tools and applications tagged parsers, ranked by how closely parsers is their primary purpose, then by adoption and maintenance health. Each entry links to a page with sources, use cases and when to choose or avoid it.
444 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| Tree-sitter Tree-sitter is a parser generator tool and incremental parsing library that builds concrete syntax trees for source files and efficiently u… | 96 | 27097 | stable |
| Wilfred/difftastic Difftastic is a structural diff CLI tool that compares files based on syntax parsed with tree-sitter, rather than line-by-line. It supports… | 93 | 25966 | active |
| simdjson A C++ library that parses JSON at gigabytes-per-second speeds using SIMD instructions and microparallel algorithms, with runtime CPU-tailor… | 100 | 24432 | stable |
| markdown-it/markdown-it markdown-it is a fast, pluggable Markdown parser for JavaScript with 100% CommonMark support plus syntax extensions like URL autolinking an… | 75 | 21930 | stable |
| .NET Compiler Platform (Roslyn) Roslyn is the open-source .NET Compiler Platform implementing the C# and Visual Basic compilers with rich code analysis APIs. It exposes co… | 67 | 20723 | stable |
| ANTLR v4 ANTLR v4 is a parser generator that reads grammar files and produces parsers, lexers, and parse-tree walkers in ten target languages includ… | 49 | 19024 | stable |
| nikic/PHP-Parser A PHP parser written in PHP that converts PHP 5.x through 8.4 code into an abstract syntax tree (AST). It provides AST traversal, modificat… | 91 | 17470 | stable |
| clap-rs/clap clap is a full-featured, fast command line argument parser library for Rust. It supports declarative (derive-based) and procedural parser c… | 97 | 16762 | stable |
| ast-grep ast-grep is a fast Rust-based CLI tool for structural search, linting, and rewriting of code using AST patterns instead of plain text match… | 99 | 16189 | active |
| GJSON GJSON is a Go library for quickly extracting values from JSON documents using dot-notation paths, with support for wildcards, iteration, an… | 76 | 15558 | stable |
| Parsedown Parsedown is a fast, single-file Markdown parser for PHP with GitHub Flavored Markdown support and no dependencies. It includes a safe mode… | 58 | 15051 | stable |
| nvim-treesitter/nvim-treesitter A Neovim plugin that manages installation and updating of tree-sitter parsers and provides a collection of queries enabling tree-sitter fea… | 75 | 14406 | active |
| DaveGamble/cJSON cJSON is an ultralightweight JSON parser and serializer written in ANSI C, distributed as a single C file and header. It provides simple pa… | 66 | 13026 | stable |
| acornjs/acorn Acorn is a small, fast JavaScript parser written entirely in JavaScript that produces an ECMAScript syntax tree (AST). It ships as three pa… | 76 | 11456 | stable |
| jhy/jsoup jsoup is a Java library for parsing, manipulating, and cleaning real-world HTML and XML, implementing the WHATWG HTML5 specification to pro… | 93 | 11410 | stable |
| doctrine/lexer A PHP base library providing an abstract lexer for building Top-Down, Recursive Descent Parsers. It tokenizes input strings and is used int… | 98 | 11143 | stable |
| wader/fq fq is a command-line tool, expression language, and set of decoders for inspecting and querying binary formats, modeled after jq and using … | 87 | 10601 | active |
| trailhq/Graft Graft is an open-source context layer for large codebases that builds a deterministic code graph using tree-sitter AST parsing and exposes … | 59 | 10536 | active |
| nom nom is a parser combinator library for Rust that lets you build safe, fast, zero-copy parsers for binary and text formats using combinators… | 46 | 10473 | stable |
| RE2 RE2 is a C++ regular expression library that guarantees linear-time matching, making it safe for handling regexes from untrusted users. It … | 80 | 9823 | stable |
| tobymao/sqlglot SQLGlot is a dependency-free Python SQL parser, transpiler, optimizer, and execution engine supporting 30+ SQL dialects such as DuckDB, Sno… | 77 | 9683 | stable |
| phpDocumentor/ReflectionDocBlock A PHP library from the phpDocumentor project that parses DocBlocks (doc comments) into structured objects, fully compatible with the PHPDoc… | 86 | 9357 | stable |
| mvdan/sh A Go library and CLI tool (shfmt) that parses, formats, and interprets shell scripts supporting POSIX Shell, Bash, Zsh, and mksh. It expose… | 86 | 9072 | active |
| phpDocumentor/ReflectionCommon ReflectionCommon is a small PHP library containing shared interfaces and common classes used by phpDocumentor's reflection components. It s… | 42 | 9032 | stable |
| kellyjonbrazil/jc A CLI tool and Python library that converts the output of popular command-line tools, file types, and common strings into JSON, YAML, or Py… | 92 | 8694 | active |
| robertkrimen/otto Otto is a JavaScript parser and interpreter written natively in Go, providing an embeddable VM for running JavaScript inside Go application… | 42 | 8450 | active |
| grex grex is a command-line tool and Rust library (with Python bindings) that automatically generates regular expressions from user-provided tes… | 53 | 8198 | active |
| golang/tools The golang.org/x/tools module provides packages and commands for static analysis of Go programs, including SSA IR, call graphs, and a modul… | 95 | 8007 | active |
| boa-dev/boa Boa is an embeddable JavaScript engine (lexer, parser, and interpreter) written in Rust with support for over 90% of the latest ECMAScript … | 88 | 7604 | active |
| symfony/css-selector A Symfony PHP component that converts CSS selectors into XPath expressions. It lets developers query HTML or XML documents using familiar C… | 94 | 7419 | stable |
| Goja Goja is an ECMAScript 5.1 (plus partial ES6) JavaScript engine implemented entirely in pure Go, emphasizing standard compliance and perform… | 77 | 7135 | active |
| RockstarLang/rockstar Rockstar is an esoteric programming language whose syntax is inspired by 1980s hard rock and heavy metal lyrics, together with its official… | 70 | 6878 | active |
| nodeca/js-yaml js-yaml is a fast YAML 1.2 (and 1.1) parser and serializer for JavaScript, passing the full YAML test suite. It converts YAML text into Jav… | 75 | 6635 | stable |
| doxygen/doxygen Doxygen is the de facto standard open-source tool for generating documentation from annotated source code, with primary support for C++ and… | 92 | 6593 | stable |
| fkling/astexplorer A web-based tool for exploring the abstract syntax trees (ASTs) generated by dozens of parsers for JavaScript, CSS, HTML, GraphQL, YAML, an… | 23 | 6546 | active |
| ondrajz/go-callvis go-callvis is a development tool that visualizes the call graph of Go programs using pointer analysis and Graphviz dot output. It provides … | 52 | 6524 | active |
| Nokogiri Nokogiri is a Ruby library for parsing, querying, modifying, and generating XML and HTML documents, built on native parsers like libxml2, l… | 92 | 6283 | stable |
| dsherret/ts-morph ts-morph is a TypeScript library that wraps the TypeScript Compiler API to simplify programmatic navigation and manipulation of TypeScript … | 85 | 6201 | active |
| JavaParser JavaParser is a Java library that parses Java source code (Java 1.0 through Java 25) into an Abstract Syntax Tree with advanced analysis ca… | 84 | 6162 | active |
| Lark parsing toolkit Lark is a parsing toolkit for Python that can parse all context-free grammars using Earley, LALR(1), and CYK algorithms. It automatically b… | 73 | 6014 | stable |
| JSQLParser/JSqlParser JSqlParser is a Java library that parses SQL statements into a traversable hierarchy of Java classes (an AST) that can be navigated via the… | 90 | 5966 | active |
| leethomason/tinyxml2 TinyXML-2 is a small, efficient C++ XML parser that builds a DOM from XML documents which can be read, modified, and saved. It consists of … | 68 | 5810 | stable |
| martinblech/xmltodict xmltodict is a Python library that converts XML documents into Python dictionaries and back, making XML manipulation feel like working with… | 83 | 5755 | stable |
| buger/jsonparser A fast, zero-allocation JSON parser for Go that lets you extract fields by path without defining structs or schemas. It is significantly fa… | 95 | 5659 | active |
| lief-project/LIEF LIEF is a cross-platform C++ library (with Python and Rust bindings) for parsing, inspecting, modifying, and writing executable file format… | 95 | 5598 | stable |
| nanopb/nanopb Nanopb is a small code-size Protocol Buffers implementation in plain ANSI C, designed for microcontrollers and other memory-constrained sys… | 83 | 5568 | stable |
| ohmjs/ohm Ohm is a parsing toolkit consisting of a JavaScript library and a domain-specific language based on parsing expression grammars (PEGs). It … | 74 | 5550 | active |
| AngleSharp AngleSharp is a .NET library that parses HTML5, SVG, MathML, XML, and CSS into a fully standards-compliant W3C DOM. It supports querySelect… | 98 | 5541 | active |
| pest-parser/pest pest is a general-purpose parser library for Rust based on parsing expression grammars (PEG). Grammars are defined in separate .pest files,… | 93 | 5400 | stable |
| xoofx/markdig Markdig is a fast, CommonMark-compliant, extensible Markdown processor for .NET that converts Markdown to HTML. It provides a rich AST with… | 96 | 5339 | stable |
| rust-lang/rust-bindgen bindgen is a Rust tool that automatically generates Rust FFI bindings to C (and some C++) libraries by parsing header files with libclang. … | 73 | 5294 | active |
| supabase-community/postgres-language-server A Language Server Protocol implementation and toolchain for Postgres SQL, built on libpg_query for 100% syntax compatibility. It provides e… | 95 | 5260 | active |
| vitali87/code-graph-rag Code-Graph-RAG is a Python CLI tool and MCP server that parses multi-language codebases with Tree-sitter, builds a knowledge graph of code … | 86 | 5258 | active |
| benjamn/recast Recast is a JavaScript syntax tree (AST) transformer and nondestructive pretty-printer that preserves original formatting where possible. I… | 63 | 5253 | stable |
| theseer/tokenizer A small PHP library that tokenizes PHP source code and serializes the resulting tokens into XML (and potentially other formats). It is comm… | 64 | 5193 | stable |
| scinfu/SwiftSoup SwiftSoup is a pure Swift HTML parser library that conforms to the WHATWG HTML5 specification and offers DOM traversal, CSS selectors, and … | 95 | 5126 | stable |
| mangiucugna/json_repair A Python library that repairs malformed JSON strings, such as broken output from LLMs, APIs, logs, or user input. It works as a drop-in fal… | 92 | 5119 | active |
| goldmark goldmark is a Markdown parser written in pure Go that is fully compliant with the CommonMark 0.31.2 specification. It features an extensibl… | 98 | 5047 | stable |
| inkle/ink ink is inkle's open-source scripting language and narrative engine for writing interactive, branching stories in games. Written in C#, it i… | 67 | 4973 | stable |
| Leonidas-from-XIV/node-xml2js A Node.js library that converts XML into JavaScript objects and back, built on sax-js and xmlbuilder-js. It supports simple callback and pr… | 65 | 4961 | stable |
| google/wuffs Wuffs is a memory-safe programming language plus a standard library for safely parsing, decoding and encoding untrusted file formats such a… | 76 | 4851 | active |
| fb55/htmlparser2 htmlparser2 is a fast, forgiving HTML and XML parser for JavaScript and TypeScript, offering a low-allocation callback interface as well as… | 84 | 4792 | stable |
| include-what-you-use/include-what-you-use Include What You Use (IWYU) is a Clang-based tool that analyzes #include directives in C and C++ source files. It detects superfluous inclu… | 90 | 4778 | active |
| yoav-lavi/melody Melody is a domain-specific language that compiles to ECMAScript regular expressions, designed to be more readable and maintainable than ra… | 23 | 4742 | active |
| Kaitai Struct Kaitai Struct is a declarative language for describing binary data structures (file formats, network packet layouts) in .ksy files. A compi… | 77 | 4715 | active |
| zeux/pugixml pugixml is a light-weight C++ XML processing library providing a DOM-like interface, an extremely fast non-validating XML parser, and an XP… | 73 | 4655 | stable |
| scottrogowski/code2flow Code2flow is a command-line tool that generates approximate call graphs for dynamic languages (Python, JavaScript, Ruby, PHP) by parsing so… | 44 | 4612 | active |
| GritQL GritQL is a declarative query language and Rust-based CLI for searching, linting, and rewriting source code using pattern matching over AST… | 82 | 4602 | active |
| zesterer/chumsky Chumsky is a Rust parser-combinator library for writing expressive, high-performance parsers with rich error diagnostics and recovery. It s… | 10 | 4533 | active |
| CodeGraphContext/CodeGraphContext CodeGraphContext (CGC) is an MCP server and CLI tool that indexes local codebases into a graph database, exposing code structure and relati… | 82 | 4251 | active |
| westes/flex flex is the classic fast lexical analyzer generator that produces C/C++ scanner code from regular-expression pattern specifications. It is … | 62 | 4042 | stable |
| rust-lang/regex The standard regular expression crate for Rust, built on finite automata (DFAs/NFAs) to guarantee worst-case linear-time matching. It suppo… | 63 | 4038 | stable |
| symfony/dom-crawler Symfony DomCrawler is a PHP component that eases DOM navigation for HTML and XML documents. It provides a Crawler class for querying and tr… | 93 | 4027 | stable |
| andialbrecht/sqlparse sqlparse is a non-validating SQL parser library for Python that tokenizes SQL text, splits scripts into statements, formats them, and expos… | 72 | 4020 | stable |
| inikulin/parse5 parse5 is a fast, WHATWG HTML Living Standard-compliant HTML parsing and serialization toolset for Node.js, written in TypeScript. It parse… | 82 | 3939 | stable |
| ibireme/yyjson yyjson is a high-performance JSON parsing and serialization library written in ANSI C (C89), capable of reading and writing gigabytes of JS… | 89 | 3918 | stable |
| alecthomas/participle Participle is a parser and lexer library for Go that lets you define grammars declaratively using annotated Go struct tags, similar in styl… | 78 | 3894 | stable |
| hanickadot/compile-time-regular-expressions A C++17/C++20 header-only library that evaluates regular expressions at compile time using constexpr and template metaprogramming. It suppo… | 77 | 3865 | stable |
| quickjs-ng/quickjs QuickJS-NG is a small, embeddable JavaScript engine written in C that aims to support the latest ECMAScript specification. It is an activel… | 88 | 3805 | active |
| kach/nearley nearley is a JavaScript parser toolkit built on the Earley parsing algorithm, consisting of a BNF-based grammar DSL compiler and a lightwei… | 23 | 3741 | stable |
| mozilla/source-map A JavaScript library for generating and consuming source maps, the standard format mapping generated code back to original sources. It prov… | 76 | 3724 | stable |
| swiftlang/swift-syntax A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code via a source-accurate syntax tree (SwiftSy… | 94 | 3710 | stable |
| System.CommandLine System.CommandLine is a .NET library for command line parsing, model binding, invocation, and rendering of terminal output, plus the dotnet… | 80 | 3676 | active |
| maciejhirsz/logos Logos is a Rust lexer generator library that derives fast tokenizers from enum definitions using token and regex attributes. It combines al… | 79 | 3578 | stable |
| eliben/pycparser pycparser is a complete C99 parser written in pure Python with no external dependencies. It produces an AST that can be used for static ana… | 91 | 3576 | stable |
| Tencent/rapidjson RapidJSON is a fast, header-only C++ library for parsing and generating JSON, offering both SAX and DOM style APIs. It is self-contained wi… | 23 | 15136 | maintenance |
| carthage-software/mago Mago is an extremely fast PHP toolchain written in Rust that provides linting, formatting, static analysis, and automated fixes through a u… | 86 | 3524 | active |
| firasdib/Regex101 Regex101 is a popular web application for building, testing, and debugging regular expressions with support for multiple regex flavors. Thi… | 62 | 3522 | active |
| lalrpop/lalrpop LALRPOP is an LR(1) parser generator for Rust focused on usability, letting you write compact, DRY, readable grammars with macros, type inf… | 77 | 3504 | stable |
| apache/datafusion-sqlparser-rs An extensible SQL lexer and parser library for Rust that produces an AST conforming to the ANSI/ISO SQL standard and various vendor dialect… | 76 | 3464 | active |
| gluon Gluon is a small, statically-typed functional programming language with type inference, implemented in Rust and designed for embedding in a… | 91 | 3451 | active |
| dtolnay/syn Syn is a Rust parsing library that converts a stream of Rust tokens into a syntax tree of Rust source code. It is primarily designed for us… | 99 | 3433 | stable |
| swiftlang/swift-markdown A Swift package for parsing, building, editing, and analyzing Markdown documents, backed by GitHub-flavored Markdown's cmark-gfm implementa… | 93 | 3428 | stable |
| mono/CppSharp CppSharp is a tool and library set that parses C/C++ headers and libraries and generates glue code to expose native APIs as managed .NET AP… | 60 | 3403 | active |
| Ataraxy-Labs/sem sem is a semantic version control CLI built on top of Git that parses code with tree-sitter and diffs, blames, and analyzes impact at the e… | 78 | 3400 | active |
| json-c/json-c json-c is a C library implementing a reference-counted object model for constructing, serializing, and parsing JSON, aiming to conform to R… | 83 | 3297 | stable |
| alecthomas/kong Kong is a command-line argument parser library for Go that maps flags, positional arguments, and subcommands onto Go structs using tags. It… | 76 | 3186 | stable |
| NaturalIntelligence/fast-xml-parser A pure JavaScript library for rapidly validating XML, parsing XML to JS objects, and building XML from JS objects, with no C/C++ dependenci… | 94 | 3138 | stable |
| lepture/mistune Mistune is a fast, dependency-free Python Markdown parser compatible with sane CommonMark rules, offering pluggable renderers, built-in plu… | 100 | 3078 | stable |
| willcrichton/flowistry Flowistry is a Rust IDE plugin (VS Code extension plus rustc plugin) that performs modular information flow analysis to determine which cod… | 57 | 3074 | active |
page 1 / 5 next →