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)
| File | Size | Uploaded | |
|---|---|---|---|
| gdp_rs-0.1.0.tar.gz | 25.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| 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}
|