pyparsing-rust
Stage-1 Rust mirror of pyparsing/pyparsing
(pyparsing 3.3.3, MIT): a runtime-constructible grammar API for Python.
Boundary
The text-scan hot path — the remainder loops of CharsNotIn.parseImpl
and White.parseImpl — lives in the reusable pyparsing-rust-core
crate (no Python dependency) with a thin PyO3 binding
(pyparsing._pyparsing). Everything else is the upstream source
verbatim:
- ported to Rust:
CharsNotIn/Whitescan loops (code-point exact, including lone surrogates); - kept in Python:
ParserElementdispatch (_parseNoCache),preParsewhitespace skipping (FFI floor exceeds 1–3-char skips; measured),Word/Regex/Literal(already C-speed viare),ParseResults,SkipTo, helpers,common, testing, unicode, diagram, tools.
pyparsing/ keeps the exact public interface; when the compiled
extension is absent the shims fall back to the upstream Python loops,
so the tree also imports without a build.
Build
python3 -m venv .venv && . .venv/bin/activate
pip install maturin
maturin develop --release
python3 -m pytest tests/ -q
Layout
pyparsing-core/— reusable Rust core (pyparsing-rust-coreon crates.io).src/lib.rs— PyO3 binding (pyparsing._pyparsing).pyparsing/core.py— upstream 3.3.3 plus two delegatingparseImplmethods (diff against upstream shows only the delegation).tests/— upstream suite (frozen oracle; do not weaken).
Measured performance
No accepted optimizations yet (mirror baseline); re-run release-prep after run --stage optimize merges winners.
Artifact hashes are intentionally absent here; see release-manifest.json.
Metadata
Release files for pyparsing-rust 3.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyparsing_rust-3.3.3.tar.gz | 127.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyparsing_rust-3.3.3-cp312-cp312-manylinux_2_34_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.34+ x86-64 | Details |
Total release size: 489.5 kB
Release files / pyparsing_rust-3.3.3.tar.gz
| Download URL | pyparsing_rust-3.3.3.tar.gz |
|---|---|
| Size | 127.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
651c0c252d29bd6f4fa4fecac3912bbd6010f0913ed2df49f6719cd1fdac9e54
|
|
BLAKE2b-256 checksum How to use checksums |
c189bff253d198d0fb2634b6de11774474b52b37e4ade5b9ef87adee0f19719b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|
Release files / pyparsing_rust-3.3.3-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | pyparsing_rust-3.3.3-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 362.3 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
26e1797385138c38ab7bf1f2b01f38d320016858707a208972fe91b7a884c7ca
|
|
BLAKE2b-256 checksum How to use checksums |
b8ca66c0a843f3d0ae034ac6b0ec456a6951515cb1be0dc31292dbd981ae1f97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|
Security for pyparsing-rust 3.3.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.