$npx skillfedfor your agent

rply

A pure Python Lex/Yacc that works with RPython

With conditionsPyPI Software DevelopmentReleased Jan 2021542.3K downloads / moBSD 3-Clause LicensePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — rply-0.7.8-py2.py3-none-any.whl
v0.7.8 · released 2021-01-27 · 1 runtime deps: appdirs

Yes, if you need a parser generator and are comfortable with abandoned software. RPLY is stable, has no known vulnerabilities, and works well for building parsers in pure Python. However, it has received no updates since January 2021 and is no longer maintained—use it only for projects where you can tolerate no future fixes or Python version support updates. For active alternatives, consider PLY or more modern parser libraries.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires understanding of lexer/parser concepts; RPython support is optional but the box pattern (wrapping values) is necessary for RPython compatibility.
  • Installation is straightforward with a single lightweight dependency (appdirs) and a pure-Python wheel.
  • However, the package is abandoned—last released in January 2021 with no activity since, so expect no bug fixes or maintenance.

License · maintenance · safety

BSD 3-Clause License (permissive) — BSD 3-Clause License is permissive, allowing commercial and private use with minimal restrictions; attribution and license inclusion are required.

last release 2021-01-27 (2025 days)

0 known vulnerabilities (OSV.dev, 2026-08-14) · 542,262 downloads/mo, #6,089 on PyPI

Verify before relying

pip install rply

from rply import LexerGenerator, ParserGenerator
from rply.token import BaseBox

lg = LexerGenerator()
lg.add("NUMBER", r"\d+")
lg.add("PLUS", r"\+")
lg.ignore(r"\s+")

pg = ParserGenerator(["NUMBER", "PLUS"])
@pg.production("expr : NUMBER PLUS NUMBER")
def expr(p):
    return int(p[0].getstr()) + int(p[2].getstr())

lexer = lg.build()
parser = pg.build()
result = parser.parse(lexer.lex("1 + 2"))
  • Whether the package still works reliably with Python 3.8+ given the 2021 release date and no recent maintenance.
  • Whether cached parsers (cache_id feature) remain compatible across Python versions without manual invalidation.
Same gist for agents: .md · .json

What it is and what it does

RPLY is a parser generator library that lets you define lexical and syntactic rules for parsing custom languages or domain-specific syntax. You write token rules (lexer) and grammar productions (parser) as Python decorators, then build a lexer and parser that can tokenize and parse input strings. It's a direct port of PLY (Python Lex-Yacc) with a cleaner API and support for RPython, a statically-typed Python subset used by PyPy.

The library is designed for building interpreters, domain-specific languages, or any tool that needs to parse structured text. It handles operator precedence, error reporting with source positions, and optional caching of compiled grammars. The box pattern (wrapping values in classes) is built in for RPython compatibility but can be ignored in pure-Python projects.

Use it for

  • Build a simple calculator or expression evaluator that parses and computes mathematical expressions.
  • Create a domain-specific language (DSL) parser for configuration files or query languages.
  • Implement an interpreter for a toy programming language or scripting syntax.
  • Parse structured text formats where regex alone is insufficient.
  • Develop a PyPy-compatible parser when RPython support is required.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need a parser generator and are comfortable with abandoned software.

RPLY is stable, has no known vulnerabilities, and works well for building parsers in pure Python. However, it has received no updates since January 2021 and is no longer maintained—use it only for projects where you can tolerate no future fixes or Python version support updates. For active alternatives, consider PLY or more modern parser libraries.

Install

rply on PyPI

Before you install

Installation is straightforward with a single lightweight dependency (appdirs) and a pure-Python wheel. However, the package is abandoned—last released in January 2021 with no activity since, so expect no bug fixes or maintenance.

Requires understanding of lexer/parser concepts; RPython support is optional but the box pattern (wrapping values) is necessary for RPython compatibility.

License in practice

BSD 3-Clause License is permissive, allowing commercial and private use with minimal restrictions; attribution and license inclusion are required.

Quickstart

pip install rply

from rply import LexerGenerator, ParserGenerator
from rply.token import BaseBox

lg = LexerGenerator()
lg.add("NUMBER", r"\d+")
lg.add("PLUS", r"\+")
lg.ignore(r"\s+")

pg = ParserGenerator(["NUMBER", "PLUS"])
@pg.production("expr : NUMBER PLUS NUMBER")
def expr(p):
    return int(p[0].getstr()) + int(p[2].getstr())

lexer = lg.build()
parser = pg.build()
result = parser.parse(lexer.lex("1 + 2"))

Verify before relying

  • Whether the package still works reliably with Python 3.8+ given the 2021 release date and no recent maintenance.
  • Whether cached parsers (cache_id feature) remain compatible across Python versions without manual invalidation.

Package facts

LicenseBSD 3-Clause License permissive
Python supportNot specified
Install frictionLow. Pure-Python wheel
Runtime dependencies
1 package
appdirs
MaintenanceAbandoned 2,025 days since the last release
First released
Downloads542,262 / month, #6,089 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14

Evidence: rply-0.7.8-py2.py3-none-any.whl

Tags

Capabilities
parser generator pythonlexer yacc plygrammar rule parserrpython parsertoken lexer generatorlex yacc alternative
Topics
parser-generatorlexerrpython

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “parser generator python”

  • rplyRPLY is a pure Python parser generator that creates lexers and…
  • plyPLY is a lexer and parser generator for Python that implements lex…
  • funcparserlibFuncparserlib is a recursive descent parsing library that lets you…

Give your agent the search over MCP, or paste the wish link into any chat.

More Software Development packages

typing-extensions Worth it
PyPI · Software Development · released Jul 2026

Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.

PSF-2.0pure Python · 3.9+
1.9Bdownloads / mo
numpy Worth it
PyPI · Software Development · released Aug 2026

NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.

BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0compiled wheel · 3.12+
1.1Bdownloads / mo
fastapi Worth it
PyPI · Software Development · released Jul 2026

FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.

MITpure Python · 3.10+
568.6Mdownloads / mo
annotated-doc With conditions
PyPI · Software Development · released Jul 2026

Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.

MITpure Python · 3.9+
456.2Mdownloads / mo
typer Worth it
PyPI · Software Development · released Aug 2026

Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.

Install it if you are building CLIs in Python.

MITpure Python · 3.10+
369.3Mdownloads / mo
distlib With conditions
PyPI · Software Development · released Jun 2026

Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.

permissive licensepure Python
323.3Mdownloads / mo

See also ply · sly · phply · pygmars · Parsley · pyparsing · funcparserlib · flexparser · lark-parser · PyMeta3