Topics / #parsing
Parsing projects on GitHub
Libraries and frameworks for parsing structured data, text, and programming languages.
As of , the most-starred Parsing projects on GitHub are protobuf (72.1K stars), pdf.js (54K stars) and langextract (39K stars). GitHub.Locker tracks 36 Parsing repositories with 726.4K stars combined. The fastest-growing on October 16 was pydantic, with +17 stars in a day.
Hot right now
Most stars gained in a day · Oct 16
+17pydantic
pydantic/pydantic · ★ 29.1KPydantic is a Python library for data validation: you describe the data you expect with plain Python type hints, and it validates and parses real data against that description.
+12CyberChef
gchq/CyberChef · ★ 36.1KCyberChef is a web app that bundles encoding, encryption, compression, hashing and other data-analysis operations ('cyber' operations) into a single drag-and-drop recipe builder that runs entirely in your browser.
REDox
CAPCOM-TD-OSS/REDox · ★ 1.6KRE:Dox is a high-performance, token-based structured data engine for .NET, built as a core component of CAPCOM's 'REX' technology for its next-generation game engine. It parses structured data into a compact token DOM that is used for reading, editing, format conversion, serialization and parallel deserialization.
liteparse
run-llama/liteparse · ★ 12.9KLiteParse is a standalone open-source PDF parser focused on fast, lightweight parsing: it extracts spatial text with bounding boxes and outputs Markdown, JSON, or Text, all running locally with no cloud or LLM calls.
The all-time top
36 projects · by stars
- 72.1K
#1 · protocolbuffers/protobuf
protobuf
Protocol Buffers (protobuf) is Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data, similar to XML but smaller, faster, and simpler.
- 54K
#2 · mozilla/pdf.jspdf.js
PDF.js is a PDF viewer built with HTML5, community-driven and supported by Mozilla. Its goal is a general-purpose, web standards-based platform for parsing and rendering PDFs.
- 39K
#3 · google/langextract
langextract
LangExtract is a Python library that uses LLMs to pull structured information out of unstructured text, mapping each extraction back to its exact location in the source document.
- 4

CyberChef
36.1Kgchq/CyberChef · JavaScriptCyberChef is a web app that bundles encoding, encryption, compression, hashing and other data-analysis operations ('cyber' operations) into a single drag-and-drop recipe builder that runs entirely in your browser.
- 5

jq
35.8Kjqlang/jq · Cjq is a lightweight command-line JSON processor, akin to sed, awk and grep but for JSON data: it slices, filters, maps and transforms structured data right in your terminal.
- 6

cheerio
30.5Kcheeriojs/cheerio · TypeScriptCheerio is a fast, flexible library for parsing and manipulating HTML and XML. It implements a subset of the core jQuery API, so if you know jQuery selectors you already know most of it.
- 7

pydantic
29.1Kpydantic/pydantic · PythonPydantic is a Python library for data validation: you describe the data you expect with plain Python type hints, and it validates and parses real data against that description.
- 8
commander.js
28.4Ktj/commander.js · JavaScriptCommander.js is a Node.js library for building command-line interfaces: it parses arguments into options and command-arguments, shows errors for invalid input, and generates help output automatically.
- 9

druid
28.2Kalibaba/druid · JavaDruid is an open-source, high-performance Java database connection pool and SQL parser built by Alibaba's DataWorks team. It combines a JDBC connection pool, a multi-dialect SQL parser/AST analyzer, a SQL firewall, and monitoring statistics into one library.
- 10

tree-sitter
27.2Ktree-sitter/tree-sitter · RustTree-sitter is a parser generator tool and an incremental parsing library for programming tools: it builds a syntax tree for a source file and efficiently updates it as the file is edited.
- 11

difftastic
26KWilfred/difftastic · RustDifftastic is a structural diff tool that compares files based on their syntax rather than line by line, so it highlights exactly which pieces of syntax have changed.
- 12

SwiftyJSON
22.9KSwiftyJSON/SwiftyJSON · SwiftSwiftyJSON is a Swift library for dealing with JSON data: it lets you pull values out of JSON without the verbose optional-wrapping and type-checking that plain Swift requires.
- 13

flow
22.3Kfacebook/flow · RustFlow is a static typechecker for JavaScript: it adds static typing to your code to catch errors early and improve quality. The project goes back to 2014 and is written in Rust.
- 14

toml
20.6Ktoml-lang/tomlTOML (Tom's Obvious, Minimal Language) is a minimal configuration file format designed to be readable at a glance, with semantics obvious enough to map cleanly onto a hash table. This repository holds the in-development TOML specification itself.
- 15

antlr4
19Kantlr/antlr4 · JavaA parser generator: you write a grammar for your language or file format, and ANTLR generates a parser that builds parse trees, plus listener/visitor interfaces to react to recognized phrases. Widely used to build languages, tools, and frameworks.
- 16

libphonenumber
18.3Kgoogle/libphonenumber · C++Google's library for parsing, formatting, and validating international phone numbers, available in Java, C++, and JavaScript.
- 17

PHP-Parser
17.5Knikic/PHP-Parser · PHPA parser written in PHP that turns PHP code into an abstract syntax tree (AST). Its purpose is to simplify static code analysis and manipulation of PHP code.
- 18

parsedown
15Kerusev/parsedown · PHPParsedown is a Markdown parser library for PHP: you feed it Markdown text and it converts it into HTML.
- 19

goquery
15KPuerkitoBio/goquery · Gogoquery is a Go library that brings jQuery-like syntax and features to HTML parsing and manipulation, built on Go's net/html package and the cascadia CSS selector library.
- 20

llmware
14.8Kllmware-ai/llmware · Pythonllmware is a Python framework for building enterprise RAG (retrieval-augmented generation) pipelines using small, specialized models that can run locally, on-device, or in private/self-hosted environments instead of relying on large cloud LLMs.
- 21

go
13.9Kjson-iterator/go · GoA high-performance JSON library for Go, positioned as a 100% compatible drop-in replacement for the standard encoding/json package: you swap the import and keep your code.
- 22

acwj
13.5KDoctorWkt/acwj · CA documented tutorial series where the author builds a self-compiling compiler for a subset of the C language, split into roughly 64 incremental parts, each with working source code and a written explanation of the theory behind it.
- 23

cJSON
13KDaveGamble/cJSON · CAn ultralightweight JSON parser written in plain ANSI C. The whole thing is one C file and one header, with the stated goal of being the dumbest parser that still gets your job done.
- 24
liteparse
12.9Krun-llama/liteparse · RustLiteParse is a standalone open-source PDF parser focused on fast, lightweight parsing: it extracts spatial text with bounding boxes and outputs Markdown, JSON, or Text, all running locally with no cloud or LLM calls.
- 25

compromise
12.2Kspencermountain/compromise · JavaScriptCompromise is a lightweight JavaScript natural-language processing library that parses text into structured data: tokenizing words and sentences, tagging part-of-speech, and letting you query phrases like numbers, names, or dates.
- 26
acorn
11.5Kacornjs/acorn · JavaScriptAcorn is a tiny, fast JavaScript parser written entirely in JavaScript. It parses JS source code into an abstract syntax tree (ESTree-compatible), which tools can then analyze or transform.
- 27

Newtonsoft.Json
11.3KJamesNK/Newtonsoft.Json · C#Json.NET (Newtonsoft.Json) is a high-performance JSON framework for .NET that serializes and deserializes .NET objects to and from JSON text.
- 28

lexer
11.1Kdoctrine/lexer · PHPDoctrine Lexer is a base PHP library for building lexers — the components that turn raw text into tokens — for top-down, recursive descent parsers.
- 29
jwt-go
10.7Kdgrijalva/jwt-go · GoA Go library implementing JSON Web Tokens (JWT): it parses, verifies, generates, and signs tokens.
- 30
fq
10.6Kwader/fq · Gofq is a command-line tool, language and collection of decoders for working with binary formats - often described as jq for binary data. You can dump a file's structure, run jq-style queries against it and explore results in an interactive REPL.
- 31

nom
10.5Krust-bakery/nom · Rustnom is a parser combinator library for Rust: you build safe parsers by composing small functions, without giving up speed or memory efficiency.
- 32

pypdf
10.3Kpy-pdf/pypdf · PythonA free and open-source pure-python PDF library: it splits, merges, crops and transforms the pages of PDF files, and can add custom data, viewing options and passwords to them.
- 33

ua-parser-js
10.2Kfaisalman/ua-parser-js · JavaScriptUAParser.js is a compact, dependency-free JavaScript library that parses user-agent strings to detect browsers, OS, devices, CPUs, rendering engines, bots and AI crawlers.
- 34
REDox
1.6KCAPCOM-TD-OSS/REDox · C#RE:Dox is a high-performance, token-based structured data engine for .NET, built as a core component of CAPCOM's 'REX' technology for its next-generation game engine. It parses structured data into a compact token DOM that is used for reading, editing, format conversion, serialization and parallel deserialization.
- 35

compiler
936edgcpp/compiler · CThis is the open-source EDG C/C++ compiler front end project: a parser and semantic analyzer for C and C++ that is famous for matching Clang, GCC, and MSVC's parsing behavior (including their quirks) so vendors can embed it in their own tools.
- 36

twinkleplop
238pngwn/twinkleplop · TypeScriptTwinkleplop is a small, fast syntax highlighter and code authoring toolkit for the web: you install just the languages you need, generate HTML or tokens from your code, and style the output with CSS.
Related topics
Often tagged together