Skip to main content

Native Rust primitives for the Tank SDK — integrity verification, tarball extraction, version resolution, permission checks

Project description

tank-core

Native Rust primitives for the Tank Python SDK. Provides SHA-512 integrity verification, tarball extraction with path traversal protection, semver resolution, and permission checks — built in Rust, exposed via pyo3.

Most users do not install this directly. Install the high-level SDK instead:

pip install "tank-sdk[native]"

That pulls tank-core as a dependency and the SDK loads it transparently. Installing tank-core alone is supported but exposes a low-level API that the SDK abstracts.

Install

pip install tank-core

Pre-built wheels ship for:

  • Linux x86_64 and aarch64 (manylinux_2_28)
  • macOS x86_64 (10.12+) and arm64 (11+)
  • Windows x86_64

Built against Python's stable ABI (abi3), compatible with Python 3.11+. Unsupported platforms (e.g. musllinux, FreeBSD) fall back to an sdist build that requires a Rust toolchain.

Low-level API

import tankpkg_core

tankpkg_core.verify_integrity(data, "sha512-...")
tankpkg_core.extract_tarball(data, "/tmp/dest")
tankpkg_core.resolve_version(["1.0.0", "1.1.0", "2.0.0"], "^1.0.0")
tankpkg_core.is_path_allowed("/src/foo.ts", ["/src/**"])
tankpkg_core.is_domain_allowed("api.anthropic.com", ["*.anthropic.com"])

budget = tankpkg_core.Permissions(
    network_outbound=["*.anthropic.com"],
    fs_read=["/src/**"],
    fs_write=["/output/**"],
    subprocess=False,
)
skill_perms = tankpkg_core.Permissions(fs_read=["/src/**"])
tankpkg_core.check_permission_budget(budget, skill_perms, "@example/skill")

Errors use standard Python exceptions: ValueError for integrity failures, IOError for extraction failures, PermissionError for budget violations.

Building from source

Requires Rust and maturin:

cd packages/sdk-core/crates/python
maturin develop

Links

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tank_core-0.16.1.tar.gz (13.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tank_core-0.16.1-cp39-abi3-win_amd64.whl (314.6 kB view details)

Uploaded CPython 3.9+Windows x86-64

tank_core-0.16.1-cp39-abi3-manylinux_2_28_x86_64.whl (398.0 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ x86-64

tank_core-0.16.1-cp39-abi3-manylinux_2_28_aarch64.whl (382.0 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

tank_core-0.16.1-cp39-abi3-macosx_11_0_arm64.whl (364.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

tank_core-0.16.1-cp39-abi3-macosx_10_12_x86_64.whl (387.1 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file tank_core-0.16.1.tar.gz.

File metadata

  • Download URL: tank_core-0.16.1.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tank_core-0.16.1.tar.gz
Algorithm Hash digest
SHA256 9bd4458a7b3f80d101742d1a19b3f84a1b3194da105ee61193b8bce264e969b2
MD5 49c022fee28fc169f326123f21cb27d4
BLAKE2b-256 b5e978a8640e8e05c454fbf6aadcda62a581871f1dcf6f22268ec6f2f3536564

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.16.1.tar.gz:

Publisher: release.yml on tankpkg/tank

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tank_core-0.16.1-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: tank_core-0.16.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 314.6 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tank_core-0.16.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dcf21a622202354d82bf42e461c6bbbba39e762d2f64b3bf67316be8e0e215cb
MD5 3526f83a5176420973b881daf675ff62
BLAKE2b-256 f4df24bb3f79c8e9e61100179497d5ec4ab63d37b3a1e11c79cc973413bd8ffd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.16.1-cp39-abi3-win_amd64.whl:

Publisher: release.yml on tankpkg/tank

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tank_core-0.16.1-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tank_core-0.16.1-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a84f780d76707500719a882af893760a82bcce1fa28a4150aa15adb2a21a67d0
MD5 b6c964b83b9c99dac8f5d5e58c56f97d
BLAKE2b-256 787390b38b8f050d1f85238e23addfaf6eb2a328795f61281a617eefeab19136

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.16.1-cp39-abi3-manylinux_2_28_x86_64.whl:

Publisher: release.yml on tankpkg/tank

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tank_core-0.16.1-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tank_core-0.16.1-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 80d52758ff2db56a901209fab0d3a5dafae9690e52f0298bf8843e3ee63053ad
MD5 e9c04e4074e9b24392b9e7967f8ef8df
BLAKE2b-256 5acaee281e39410d84a6915ea1117d3f38c03a0b4db8324da2cbc1a931b4aa49

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.16.1-cp39-abi3-manylinux_2_28_aarch64.whl:

Publisher: release.yml on tankpkg/tank

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tank_core-0.16.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tank_core-0.16.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4624febad061732652a3a55a902de4bc1bec5da29b262a5528baae285b08ca38
MD5 08744e1d89ae184455cdac45217e89f7
BLAKE2b-256 4eaebc8e83451bc310959376583d501707dec08f4803c9ffb0c31df60dcb5476

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.16.1-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on tankpkg/tank

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tank_core-0.16.1-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tank_core-0.16.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 97ca6d8d906fd09911ae5de887eba07813385c2e16a7226318733625963ef800
MD5 43f5e1ee305ee0ebbae30c39051b276d
BLAKE2b-256 9bfed7e6bbee53e0f8bca92dc5f55e38e56205932d38bd61bf391f8f6bd68d7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.16.1-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on tankpkg/tank

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page