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.15.8.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.15.8-cp39-abi3-win_amd64.whl (314.6 kB view details)

Uploaded CPython 3.9+Windows x86-64

tank_core-0.15.8-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.15.8-cp39-abi3-manylinux_2_28_aarch64.whl (382.0 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

tank_core-0.15.8-cp39-abi3-macosx_11_0_arm64.whl (365.5 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

tank_core-0.15.8-cp39-abi3-macosx_10_12_x86_64.whl (386.7 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: tank_core-0.15.8.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.15.8.tar.gz
Algorithm Hash digest
SHA256 b1f7e82f4f3653483c3a30a8e87c3f3f4bc8d0165e6bac36653adfc5af7e93e0
MD5 25b480ce5d0d76d56da1824223106691
BLAKE2b-256 6be08203128277645b1b73115e56a894a6505f724282b03a93e6852f07c21110

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.15.8.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.15.8-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: tank_core-0.15.8-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.15.8-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8b1de8031a0a2d5a3030b8f244f4114dc402ae2fe8528afa8e8a76e0492c38d0
MD5 171b8971598c74cbb09925162cda9990
BLAKE2b-256 8cd5a6730632b9e99204a5617dfd41f14bc08cb921b7a4ad5dbbebcbb877ef98

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.15.8-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.15.8-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tank_core-0.15.8-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d403829cc5fc6baca924c10f763aa426c89e55f1761edabab1a5595a171a9e29
MD5 992c2d052f4060ef9fbbc79d0dbf8536
BLAKE2b-256 6380630c0b50548391a4213f8fc525df4891d0e9fc0128140993c67601a16af7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.15.8-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.15.8-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tank_core-0.15.8-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 27d4e1717dd2e82800b439b4824ad17f76979ce1905f48169bb9b50d4f7e2c70
MD5 0b5062fdd1cbdd13b50430b248a9b40b
BLAKE2b-256 8934fe2dff255393563c632ca2bd821df061912c9b8f8570a84abccd75547caa

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.15.8-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.15.8-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tank_core-0.15.8-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e198c6b9ac849ba370a7e834a50f94eff46ef5779cf6a5ac3bc5cc2113a30fa6
MD5 72ca762275db526003c2f90c6604ef5d
BLAKE2b-256 5d847bfc6be3a3b3e1ff19dd0f137c4a7751e48ddec509032149eaf7153944c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.15.8-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.15.8-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tank_core-0.15.8-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 12af7735441698a7fa12b502a933f9aadd54a4f7dfc305c5c61757410f42868d
MD5 bf03dba7eb37b5182211165dcef3c1f0
BLAKE2b-256 f889513458518013e3646790943e4e2de8c5484f8b75bc83ea2b3d858a1d3f37

See more details on using hashes here.

Provenance

The following attestation bundles were made for tank_core-0.15.8-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