This release is a pre-release and may not be stable for production use.
FastParse Python Binding
Small ctypes binding for the FastParse native C library.
The binding keeps the same design boundary as the native library:
- Python owns file I/O.
- Python passes bytes already loaded in RAM.
- FastParse returns JSON, CSV, MessagePack binary, diagnostics, or stats in RAM.
- FastParse can execute Tree-sitter queries and return matches/captures in RAM.
- Python copies the returned native buffer and frees the native result.
Install
From PyPI, once the package is published:
pip install --pre fastparse
From a downloaded wheel:
pip install fastparse-0.1.0rc17-py3-none-macosx_11_0_arm64.whl
The wheel includes the native library for its platform and py.typed markers for type-aware tooling, so normal users do not need FASTPARSE_LIBRARY_PATH.
Quick Use
from fastparse import FastParse, Field, OutputFormat, ParseOptions
parser = FastParse()
source = b"class Demo { void run() {} }"
result = parser.parse_bytes(
source,
ParseOptions(
language="java",
output_format=OutputFormat.JSON,
fields=Field.RULE | Field.TEXT | Field.BYTE_RANGE,
),
)
print(result.node_count)
print(result.json())
Tree-sitter query output:
from fastparse import QueryOptions
query_result = parser.query_text(
"class Demo { void run() {} }",
"(method_declaration name: (identifier) @method.name) @method",
QueryOptions(
language="java",
output_format=OutputFormat.JSON,
fields=Field.CAPTURE_NAME | Field.RULE | Field.TEXT | Field.RANGE | Field.BYTE_RANGE,
),
)
print(query_result.json())
Binary MessagePack output:
result = parser.parse_bytes(
source,
language="java",
output_format="binary",
fields=["rule", "text", "byte_range"],
)
print(result.node_count)
print(result.data) # MessagePack bytes
Decode binary output into Python dataclasses:
document = result.binary_document()
print(document.nodes[0].rule)
print(document.nodes[0].text)
If the caller only needs node/output counts and does not need to copy the generated JSON/CSV into Python:
summary = parser.parse_bytes_summary(
source,
language="java",
output_format="json",
)
print(summary.node_count)
print(summary.output_length)
Use FASTPARSE_LIBRARY_PATH to point at a specific native library:
FASTPARSE_LIBRARY_PATH=/path/to/libfastparse.dylib python your_script.py
Examples
From the repository root:
python3 examples/python/03_binary_decode/binary_decode.py
python3 examples/python/04_inventory_to_sqlite/inventory_to_sqlite.py --workers 12
python3 examples/python/05_diagnostics_scan/diagnostics_scan.py /path/to/java/root --glob "*.java" --workers 12
04_inventory_to_sqlite is the enterprise pattern for high-throughput work:
the parent Python app reads files, uses threads, decodes binary output into
dataclasses, and writes SQLite tables outside the native library.
Metadata
Release files for fastparse 0.1.0rc36
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| fastparse-0.1.0rc36-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| fastparse-0.1.0rc36-py3-none-manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| fastparse-0.1.0rc36-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| fastparse-0.1.0rc36-py3-none-macosx_10_15_x86_64.whl | Python 3 | none | macOS 10.15+ x86-64 | Details |
Total release size: 700.4 kB
Release files / fastparse-0.1.0rc36-py3-none-win_amd64.whl
| Download URL | fastparse-0.1.0rc36-py3-none-win_amd64.whl |
|---|---|
| Size | 146.4 kB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
015b0dbcb22766ab77c45dfdf7630a0c449b916f4a9691f63eecac6a90a0ebbf
|
|
BLAKE2b-256 checksum How to use checksums |
ee3cc0197ebf45afd65f3e89830621cf23bf9235b21eee55c4abfc78517a0ca1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / fastparse-0.1.0rc36-py3-none-manylinux2014_x86_64.whl
| Download URL | fastparse-0.1.0rc36-py3-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 195.2 kB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
c2973401755aadec754d5482e120a5e1a090eec8cc2141cef17fca31edc51c79
|
|
BLAKE2b-256 checksum How to use checksums |
668b668c40a8bfbacab17e76a9867693373ca8fd1e89d0b852a269bc115468b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / fastparse-0.1.0rc36-py3-none-macosx_11_0_arm64.whl
| Download URL | fastparse-0.1.0rc36-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 177.1 kB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ea7856bbe7b4c6c7204660a4268a146805a8c6bd60068be941d53733f7cfcac3
|
|
BLAKE2b-256 checksum How to use checksums |
444fb0e06f3d9d752447d2c90c66e1a72f7db9651d1e3b1eb65a7361f354ce04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / fastparse-0.1.0rc36-py3-none-macosx_10_15_x86_64.whl
| Download URL | fastparse-0.1.0rc36-py3-none-macosx_10_15_x86_64.whl |
|---|---|
| Size | 181.6 kB |
| Tags | Python 3 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
8644960e16141ea01585105e1b0d7bfaa4d050d44abef97985e112172500fd28
|
|
BLAKE2b-256 checksum How to use checksums |
a51576f19bef72319b8dcefde1a24018ac866768a119997d3668a827527ebe1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency log