Pystachy
Pystachy compiles a typed subset of Python to native code through LLVM. Use it for CPU-bound work such as text processing, data repair, and simulation while keeping your code in Python. The compiler is self-hosting, and its JIT and AOT modes share the same typed intermediate representation.
Quick start
Install the PyPI package in a Python 3.11+ virtual environment:
pip install pystachy
The installation guide covers LLVM requirements and automatic toolchain setup. Native archives and Docker images are also available.
Then save this as demo.py:
from fnmatch import fnmatchcase
from functools import lru_cache
@lru_cache(maxsize=256)
def classify(name: str) -> str:
return "api" if fnmatchcase(name, "api.*") else "other"
print(classify("api.request"), classify("worker.done"))
python3 demo.py # CPython reference
pystachy run demo.py # Compile and run with JIT
pystachy build demo.py -o demo # Build a native executable
./demo
All three executions print api other. The executable runs without Python.
The getting started guide walks through a diagnostic
and shows how to measure compilation and execution separately.
What you can build
| Example | What it shows |
|---|---|
| Event router | Route logs and traces using pattern matching and memoization. |
| JSON repair | Repair malformed JSON through a native CLI or a CPython extension. |
| Byte BPE | Train a byte tokenizer and encode/decode Unicode text natively. |
| Coding agent | Run a typed tool loop and edit files from a native executable. |
| nanoGPT | Run inference and training with native arrays and optional BLAS. |
Browse all examples for their purposes, checks and requirements.
See the performance guide for measured workloads, startup
and memory costs, and reproduction commands. On supported Linux native installs,
run automatically reuses unchanged programs.
PYSTACHY_PROGRAM_CACHE=0 forces compilation; build produces a standalone executable.
Compatibility
Pystachy is experimental. It supports typed containers, classes, generators and
other common Python constructs. General multiple inheritance, async and
match are outside the supported subset. Integers are checked 64-bit values by
default. Promoting integers and dynamic Any
are opt-in. Dynamic Any includes a bounded prototype for
class values, type-keyed registries, generic calls and annotated factories.
Check the language guide and
library support table for the
features and APIs your code uses. The library includes bounded argparse, enum
and experimental static ctypes declarations.
Some packages compile from installed sources, and others need
adaptations like the maintained ports. The optional
CPython bridge lets native code call
packages that need CPython at runtime.
Roadmap
Pystachy is focused on stronger type inference, broader library support backed by CPython comparisons, and lower compilation and execution costs.
Learn more
- Documentation covers installation, packaging, interoperability and compiler internals.
- Testing explains CPython comparisons, bootstrap checks and CI.
- Contributing covers development setup, focused tests and submissions.
Pystachy is MIT-licensed. See the third-party notices for licenses of adapted code.
Metadata
Release files for pystachy 0.3.1
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 | Actions |
|---|---|---|---|---|
| pystachy-0.3.1.tar.gz | 1.8 MB | With provenance | Details for pystachy-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pystachy-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for pystachy-0.3.1-py3-none-any.whl |
Total release size: 3.6 MB
Release files / pystachy-0.3.1.tar.gz
| Download URL | pystachy-0.3.1.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59a42f6f5cfecf0667013fdf72ac9e005d33f85d5cb92ec6c59769da500fb5aa
|
|
BLAKE2b-256 checksum How to use checksums |
756fcb96f0435f6ce0fa0e7185f6b305562ec559fdd1a136233fd3b120834a93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 8, 2026.
Transparency logRelease files / pystachy-0.3.1-py3-none-any.whl
| Download URL | pystachy-0.3.1-py3-none-any.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
03ab6a3177de4ab9c39fadfaaf8001e305b796ad016405071b0deebc15552496
|
|
BLAKE2b-256 checksum How to use checksums |
77476550cb1786837821f5079e046c2b352bb66da86dcd6940e60d4f3f7e02b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 8, 2026.
Transparency logSecurity for pystachy 0.3.1
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for pystachy-0.3.1.tar.gz
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 Nov 8, 2026.
Transparency logA 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.