alecthomas/participle
A parser library for Go observed · 2026-08-28
Health v2 · maintenance only
79/100
- Activity 99
- Release rhythm 40
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 3.5
- age_days: 3718
- days_rel: 528
- days_push: 7
- n_releases_24m: 3
Adoption not part of the score
3878 stars · 212 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
Participle is a parser and lexer library for Go that lets you define grammars declaratively using annotated Go struct tags, similar in style to encoding/json. It supports EBNF-style grammar syntax, custom lexers, union types, and detailed error reporting.
Use cases
- parse a custom config file format in Go
- build a DSL parser in Go
- write a lexer and parser for a small language
- parse structured text into Go structs
- generate an AST from source text in Go
- implement an ini or expression parser
When to choose
- you want idiomatic Go parsers defined via struct tags without code generation
- you need a lightweight parser library with good error reporting
- you are parsing a small-to-medium DSL or structured text format
When to avoid
- you need extremely high-performance parsing of huge inputs
- you need a full production-grade compiler frontend with advanced grammar features
- your grammar requires features outside Participle's limitations, such as complex context-sensitive parsing
Facets
library · maturity stable
parser developer-tools parsers developer-tools programming-languages go cross-platform lexer grammar ebnf ast struct-tags parser-combinator
1 source
- readme: https://github.com/alecthomas/participle · fetched 2026-08-28 · 0c7f10e76998
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| alecthomas/participle | main | 79 |
For agents
markdown · JSON · MCP: product_card(name="alecthomas/participle")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem