piarun
piarun compiles a supported Rust subset into base64-encoded, certified PRN IR. The piarun Python distribution contains one native C executable named piarun; Python is used for package installation, not command execution. No runtime package dependencies, compiler installation, credentials, or network access are required by the installed binary.
Install and run
After publication:
uvx piarun version
uvx piarun help
uvx piarun advertise
uvx piarun rs2ir --source 'fn main() { println!("hello"); }'
uvx --from piarun piarun rs2ir --input main.rs
uv tool install piarun
piarun version
Before publication, build and run the local wheel:
uv build
uvx --from ./dist/piarun-0.0.2-py3-none-macosx_11_0_arm64.whl piarun version
Use the wheel filename produced on your platform. uvx --from . piarun version also builds directly from the checkout. piarun is the package name and the only executable name.
For source edits without a version bump, use uvx --no-cache --from . piarun ... to bypass a previously cached tool environment.
Compiler contract
piarun rs2ir --input main.rs
printf 'fn main() { println!("hello"); }' | piarun rs2ir --input -
piarun rs2ir --source 'fn main() { println!("hello"); }' | base64 --decode
Successful rs2ir output is always a single line of base64, whether displayed in a terminal, piped, captured, or invoked with --json. Pipe it directly into base64 --decode; no JSON envelope or field extraction is needed. Metadata commands and ordinary errors retain their structured JSON output when piped or passed --json.
The code is RFC 4648 standard padded base64 of compact UTF-8 Program JSON, including its PUOPS certificate. The decoded JSON has no insignificant whitespace and no terminal newline; string contents retain their whitespace. An unsupported construct or failed certification is an error, never an uncertified success. Rust input is bounded to 4 MiB and JSON to 32 MiB. See CLI-CONTRACT.md for fields and exit codes.
Build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel 4
ctest --test-dir build --output-on-failure
./build/piarun version
uv build
The executable is C11 throughout, including the compiler submodule. CMake and declarative pyproject.toml metadata build platform wheels with scikit-build-core. Python files are verification and release tooling only; there are no Python modules, launchers, or Python shared-library dependencies in the wheel. Wheels use py3-none-PLATFORM tags and support installers using Python 3.9+. Source builds require Git, CMake 3.20+, and a C11 compiler; wheels do not.
Builds default to distribution: local. Release workflows set pypi; other distributors can set -DPRN_DISTRIBUTION=github or another label. version also includes the UTC build date, source revision, frontend revision, and platform. SOURCE_DATE_EPOCH controls reproducible build dates. Distribution describes artifact provenance, not the installer's download location: a release wheel copied from PyPI and installed locally remains the same artifact. Missing Git history is honestly reported as uncommitted; release jobs supply the exact commit explicitly.
Platforms and release
The wheel matrix targets macOS 11+ on Apple Silicon and Intel, Linux glibc 2.17+ and musl 1.2+ on x86-64/AArch64, and Windows 10 version 1903+ on AMD64 and Windows 11 on ARM64. RELEASE.md explains native build/test jobs, provenance, and trusted publishing. See VALIDATION.md for what has actually been run locally; a configured target is not evidence of a successful execution test.
Scope
| Capability | Owner |
|---|---|
| Rust subset parsing and certification | Submodule, pinned prn-v2-rs2ir-c; see vendor/README.md |
| IR schema authority | prn-v2-schema Rust/Serde definitions |
| Execution, persistence, generated code | prn-v2-interpret-*, prn-v2-ir2code-*, and prn-v2-prnc-* |
| Full Rust compilation and type checking | rustc |
| Gateway hosting | prn-v2-prngwd |
piarun does not execute submitted source, add dependencies, mutate the source file, or contact a service. A temporary IR stream is closed on success and reclaimed on process exit. The source repository is private. Publication remains a deliberate maintainer action.
Clone the private source
git clone --recurse-submodules git@github.com:piarun/prn-v2-uvx-piarun.git
cd prn-v2-uvx-piarun
python3 tools/gate.py
An existing checkout needs git submodule update --init --recursive. Source archives include the pinned compiler sources and build without GitHub access.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file piarun-0.0.2.tar.gz.
File metadata
- Download URL: piarun-0.0.2.tar.gz
- Upload date:
- Size: 74.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f22051348ce2beda1f3102fca1b017781fc77a8aac738d4f330b431f7e3208ac
|
|
| MD5 |
59217aa0f96de862b39ac9424cad0533
|
|
| BLAKE2b-256 |
24b676daa4b2e7cdcec3cb6a733e9db047800830674dd1db9243d44f2dac637b
|
Provenance
The following attestation bundles were made for piarun-0.0.2.tar.gz:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2.tar.gz -
Subject digest:
f22051348ce2beda1f3102fca1b017781fc77a8aac738d4f330b431f7e3208ac - Sigstore transparency entry: 2839240225
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-win_arm64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-win_arm64.whl
- Upload date:
- Size: 138.2 kB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b64b2fc0251f67e8b88de9dd313cc3c4885c95b44f5f4f02052731d7f8f7627
|
|
| MD5 |
cb887161b2f1ad87b9dcd3e3ff9bbfeb
|
|
| BLAKE2b-256 |
6c839203b910de8d4bde2bbfef7f5d0a9708da4de49e2db0f6d71249940d8af0
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-win_arm64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-win_arm64.whl -
Subject digest:
5b64b2fc0251f67e8b88de9dd313cc3c4885c95b44f5f4f02052731d7f8f7627 - Sigstore transparency entry: 2839240425
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-win_amd64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-win_amd64.whl
- Upload date:
- Size: 154.3 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e430489babaa88a574ef874e268f96f3b3f0effa3cbc6e2a225547f66bb9cbf8
|
|
| MD5 |
886b57ab30f0583097ff28e0b197e785
|
|
| BLAKE2b-256 |
be8fd3a1a036d9ada0cd2802fc9d5f6827b8ae1fcc49f30facc8ee5d8f85e0a5
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-win_amd64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-win_amd64.whl -
Subject digest:
e430489babaa88a574ef874e268f96f3b3f0effa3cbc6e2a225547f66bb9cbf8 - Sigstore transparency entry: 2839240684
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 76.6 kB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9eb74842e334f1dd1d6c83076cafccec63b7f810b7af093999dd3f281ac3b93
|
|
| MD5 |
9811ac12ab837cd72ac195f904fd1430
|
|
| BLAKE2b-256 |
282be775f4703ff62b1bb8b25b35bb4367cf6fa9bb915636890bb3821f86c099
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-musllinux_1_2_x86_64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-musllinux_1_2_x86_64.whl -
Subject digest:
a9eb74842e334f1dd1d6c83076cafccec63b7f810b7af093999dd3f281ac3b93 - Sigstore transparency entry: 2839240568
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 77.0 kB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d50fd2958f4d6bec10d4b2aad7f55af49dc7aae5f6fce10de85112cf56bf58db
|
|
| MD5 |
647a564a7cb9b52b25c639ca0e630c6e
|
|
| BLAKE2b-256 |
370ef7a638642e457bee8383b06f7cd01bc92951e570a3b8efa99b1acf366fea
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-musllinux_1_2_aarch64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-musllinux_1_2_aarch64.whl -
Subject digest:
d50fd2958f4d6bec10d4b2aad7f55af49dc7aae5f6fce10de85112cf56bf58db - Sigstore transparency entry: 2839240371
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 68.5 kB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c049a8e70f0a865917fadbb7747ad26fc0a62d72c3a6ed1cdd55cbb02f2cc5b
|
|
| MD5 |
cb4f5a1ed223bcd422ea6b60b1a62f27
|
|
| BLAKE2b-256 |
de5729d5e5dab50ada4a18faaa6d619ad5b8a62d12e9ac61d61b271dd88e98ca
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
3c049a8e70f0a865917fadbb7747ad26fc0a62d72c3a6ed1cdd55cbb02f2cc5b - Sigstore transparency entry: 2839240467
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
- Upload date:
- Size: 71.4 kB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acaef7cb0dd9474d76f7a068adf775f2f1997dcdd8e9452503d4872e374c458a
|
|
| MD5 |
3b159236883bb179085f4dd03377b0c7
|
|
| BLAKE2b-256 |
664eee1909d31018facfa50c899a6898e42d8c0f3d2abaaf52ecd5c9b6d07f2e
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl -
Subject digest:
acaef7cb0dd9474d76f7a068adf775f2f1997dcdd8e9452503d4872e374c458a - Sigstore transparency entry: 2839240628
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-macosx_11_0_x86_64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-macosx_11_0_x86_64.whl
- Upload date:
- Size: 68.0 kB
- Tags: Python 3, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccdeb69ff20bbd85f0ea06afe446ccf91347f7d3cd41527961a6a1414bdcc9b6
|
|
| MD5 |
c17dd28b3ce32be405ef5d2caa64ec7a
|
|
| BLAKE2b-256 |
ee943638e6d968460be4a0b40336acfacdadf83e66aed01c65cecff598e5a742
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-macosx_11_0_x86_64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-macosx_11_0_x86_64.whl -
Subject digest:
ccdeb69ff20bbd85f0ea06afe446ccf91347f7d3cd41527961a6a1414bdcc9b6 - Sigstore transparency entry: 2839240289
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file piarun-0.0.2-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: piarun-0.0.2-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 67.6 kB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0a542f0f4cbd89a1acce1698fe88ade219d05e8154137576f8047256c49bdfe
|
|
| MD5 |
d9469d5b8fc611e8a3cc71863dcd831d
|
|
| BLAKE2b-256 |
92927d581d976c5713128d5dc2a2802e9215936e77a3e61e829fdae66293e661
|
Provenance
The following attestation bundles were made for piarun-0.0.2-py3-none-macosx_11_0_arm64.whl:
Publisher:
pypi-registry.yml on piarun/prn-v2-uvx-piarun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
piarun-0.0.2-py3-none-macosx_11_0_arm64.whl -
Subject digest:
d0a542f0f4cbd89a1acce1698fe88ade219d05e8154137576f8047256c49bdfe - Sigstore transparency entry: 2839240330
- Sigstore integration time:
-
Permalink:
piarun/prn-v2-uvx-piarun@c36bc7eb8431b06267affa2141d764866aafc81e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/piarun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-registry.yml@c36bc7eb8431b06267affa2141d764866aafc81e -
Trigger Event:
workflow_dispatch
-
Statement type: