branxas
Typed Python bindings for the Branxas secrets server. This package speaks only to a Branxas server; it is not a generic vault client. The implementation is a small PyO3 binding over the public Rust branxas crate.
from branxas import Client
with Client.from_env() as client:
client.wait_unsealed(30.0)
secret = client.get("apps/billing/token")
token = secret.reveal() # Explicitly disclose the value only where it is needed.
names = client.get_env("apps/billing")
from branxas import load_env
loaded_names = load_env("apps/billing") # Returns names, never values.
Asyncio is available as branxas.aio.Client; its operations are awaitable:
from branxas.aio import Client
async with Client.from_env() as client:
await client.wait_unsealed(30.0)
values = await client.get_env("apps/billing")
The client does not expose seal, unseal, passphrase, or administrative operations. It never unseals the server. Install and configure the server separately.
Client.from_env() requires BRANXAS_URL (HTTPS base URL), BRANXAS_CA (trusted CA PEM path), BRANXAS_CERT (registered client certificate path), and BRANXAS_KEY (client private key path). The constructor accepts PEM bytes or path-like values. TLS 1.3 is used, server names are verified, and only the supplied CA is trusted.
Secret never includes its value in repr, str, or formatting. Call reveal() or reveal_bytes() deliberately. Python strings are immutable and cannot be zeroized; copies may remain in memory until garbage collection. load_env stores values in os.environ, where child processes and same-user readers of /proc/<pid>/environ may see them, just as with python-dotenv. For tighter handling, use get() and pass the value explicitly without placing it in the process environment.
The sync and asyncio clients are thread-safe. They share one lazily created Tokio runtime with at most two worker threads; sync calls release the GIL while waiting on I/O. close() releases the client's transport handle. Clients inherited across fork() are rejected; create a new client in the child process. Wheels target CPython 3.11+ through abi3. Linux wheels target manylinux 2.28 on x86_64 and aarch64. macOS wheel builds must currently be made on macOS; see PUBLISHING.md.
Development
uv venv
uv pip install --python .venv/bin/python pytest pytest-asyncio mypy pyright ruff
uv run --python .venv/bin/python --with maturin maturin develop
Metadata
Release files for branxas 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| branxas-0.1.0-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details for branxas-0.1.0-cp311-abi3-win_amd64.whl |
| branxas-0.1.0-cp311-abi3-manylinux_2_28_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ x86-64 | Details for branxas-0.1.0-cp311-abi3-manylinux_2_28_x86_64.whl |
| branxas-0.1.0-cp311-abi3-manylinux_2_28_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ ARM64 | Details for branxas-0.1.0-cp311-abi3-manylinux_2_28_aarch64.whl |
| branxas-0.1.0-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details for branxas-0.1.0-cp311-abi3-macosx_11_0_arm64.whl |
Total release size: 4.5 MB
Release files / branxas-0.1.0-cp311-abi3-win_amd64.whl
| Download URL | branxas-0.1.0-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
7475cb91800caeca9866094d61a46c7d93e92aa055ee7e78f14afa545a58533d
|
|
BLAKE2b-256 checksum How to use checksums |
ed966fd65ad8cec84b4a1212f541168e045d37f8dcb755ec3b090389824a0fa8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","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 / branxas-0.1.0-cp311-abi3-manylinux_2_28_x86_64.whl
| Download URL | branxas-0.1.0-cp311-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
bbde4215249c1698635e314b79977a72787557c78169397359075ae081a4158f
|
|
BLAKE2b-256 checksum How to use checksums |
ebf0e559136e51bf6260945b61a149171405ddff8833473a394fcd5ffcdd669f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","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 / branxas-0.1.0-cp311-abi3-manylinux_2_28_aarch64.whl
| Download URL | branxas-0.1.0-cp311-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
16ac57554def83e7aeca900f143c21029ad6949b2059034835d5945af5c9fb82
|
|
BLAKE2b-256 checksum How to use checksums |
18c9158cefe464c68cc217898351c17d98ce8db81870a874b1b93f5e94b1ef98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","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 / branxas-0.1.0-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | branxas-0.1.0-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
50d18b499c3f6d4a1ee8dfcbcea1608f5041d9617a275de377d3aebcf150c29a
|
|
BLAKE2b-256 checksum How to use checksums |
5a3d859b3c651edc683b7c7428847186196386e701453fa2f7f1cb921f2e3b73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","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}
|
Security for branxas 0.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.