Skip to main content

Proofbound for Python

Rust-backed authorization contracts. The extension creates opaque names and proofs; the Python decorator checks them before a sensitive function runs.

Proofbound is an early project with an evolving API. The Python distribution is gdp-rs, the import package is gdp, and the linter command is gdp-lint.

Install

pip install gdp-rs==0.1.0

CPython 3.11–3.14 is tested. Release wheels support Linux x64/ARM64 (glibc 2.17+), macOS ARM64 (11+) and Windows x64. Wheel installation does not require Rust; building from source requires Rust 1.90 or newer.

How it works

A trusted application module performs the real permission or entitlement check, then issues a proof for named arguments. A sensitive function declares the proof it requires using @requires. Before the body runs, Rust verifies the exact issuer, ordered subject identities and active scope.

Equal raw IDs named separately have different identities. Type hints and the AST linter add checks for accidental misuse. The library does not decide your policy, prevent permission revocation or make a check and write atomic. Python code running in the same process can bypass a decorator; this is not a sandbox.

See the Python API, guarantee matrix and executable SQLite example. The repository README includes trusted checker and protected function examples.

Attribution

Inspired by Guillermo Rauch's MIT-licensed gdp-ts, Matt Noonan's Ghosts of Departed Proofs, and Ollie Charles's Who Authorized These Ghosts!?. The original copyright notice and MIT license are preserved in the distribution.

Metadata

Release files for gdp-rs 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gdp-rs 0.1.0
File Size Uploaded
gdp_rs-0.1.0.tar.gz 25.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for gdp-rs 0.1.0
File
gdp_rs-0.1.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
gdp_rs-0.1.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details
gdp_rs-0.1.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64 Details
gdp_rs-0.1.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details

Total release size: 918.8 kB

Release files / gdp_rs-0.1.0.tar.gz

Download URL gdp_rs-0.1.0.tar.gz
Size 25.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6ccf3e770f0f81c12155409b9723b9b5355e1d62b81820c7eff05ab3108ee47d
BLAKE2b-256 checksum
How to use checksums
14ed208ec577673a939c505377ab9b669f642603d729cd57ed444cb37e636e41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gdp_rs-0.1.0-cp311-abi3-win_amd64.whl

Download URL gdp_rs-0.1.0-cp311-abi3-win_amd64.whl
Size 139.7 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
249a7f3f8e3649b5ae57d6ab9103b6aad82a9b80c5b9683a5c50e13ba0574e6e
BLAKE2b-256 checksum
How to use checksums
a1a8e660ca88205552e112ca09f1a32f6ba91ae01767310a6add83708cdca20d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gdp_rs-0.1.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gdp_rs-0.1.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 259.8 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
d0855d1c0424c64d9c9db2e67bf20ac9b50b39b10b46f950c7f9f27bf798a3a5
BLAKE2b-256 checksum
How to use checksums
eaa7effd001f3b9e4cfd39fa6bcb707e3de5d353d3d9a55e1bf3f5a5d7cbfafe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gdp_rs-0.1.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL gdp_rs-0.1.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 259.7 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
0136118d23a399067fdf98f12d5a1d321c140c7635b666a2a913ed0b6073a689
BLAKE2b-256 checksum
How to use checksums
973fddbefe62542e79bef8425fe4ecc6fce653827fa8df2de089207a6aa899fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gdp_rs-0.1.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL gdp_rs-0.1.0-cp311-abi3-macosx_11_0_arm64.whl
Size 234.1 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
84826359bfb2ea4573bd207f5a33d32673fb8d879712981d44f7d2defde49ce8
BLAKE2b-256 checksum
How to use checksums
bea600d789ddb0e9bdae59817ec4cca0ff1baada0be4a0ded6eb7fac9d61a2a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.1

5 release files

This release

0.1.0 This release

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page