Skip to main content

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)

Table of built distributions (wheels) for branxas 0.1.0
File Actions
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

4 release files No provenance

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