tink
A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
What it is and what it does
Tink is Google's cryptography library designed to make secure crypto accessible without requiring deep cryptographic expertise. It provides high-level APIs for authenticated encryption, key management, and digital signatures that are resistant to common implementation mistakes. The library is built on lessons learned from Google's own product deployments and security research, emphasizing user-centered design and careful code review.
The Python binding wraps Tink's core functionality and is maintained actively with support for modern Python versions (3.10–3.14). It depends on protobuf, absl-py, and bazel-runfiles. Installation uses precompiled wheels for most platforms, reducing build friction. Tink is positioned as a standard crypto library within Google and has been deployed across hundreds of products, making it a production-grade choice for applications requiring strong cryptographic guarantees without the complexity of lower-level APIs.
Use it for:
- Encrypting sensitive data at rest or in transit using authenticated encryption primitives without managing cipher modes manually.
- Implementing key rotation and key management policies through Tink's keyset abstraction and key versioning.
- Adding digital signatures to messages or documents for integrity and authenticity verification.
- Building applications that require compliance with cryptographic best practices without deep security expertise.
- Integrating with key management systems for envelope encryption and centralized key management.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Tink provides cryptographic APIs designed to be secure by default and difficult to misuse, offering authenticated encryption, key management, and digital signatures across multiple platforms.
Yes. Tink is actively maintained, has no known vulnerabilities, supports current Python versions, and carries a permissive license. It is appropriate for any application requiring cryptography where ease of correct use and resistance to common pitfalls outweigh the need for lower-level control. The medium install friction is offset by prebuilt wheels and straightforward dependencies.
Install
tink on PyPI
pip
pip install tinkuv
uv add tinkpoetry
poetry add tinkInstalling tink
Before you install
Medium install friction due to compiled wheels, but well-maintained with active development (release 1 day old as of fact sheet date). Supports Python 3.10 through 3.14 with prebuilt wheels for macOS, Linux (x86_64 and aarch64), and Windows.
License in practice
Apache 2.0 permissive license allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects without legal friction.
Quickstart
pip install tink
import tink
from tink import aead
# Initialize Tink
tink.Tink.init()
# Generate a new keyset for AEAD
keyset_handle = aead.new_keyset_handle(aead.aead_key_templates.AES_GCM)
cipher = keyset_handle.primitive(aead.Aead)
Requires Python 3.10 or later; depends on protobuf, absl-py, and bazel-runfiles at runtime.
Verify before relying
- Whether KMS integration (mentioned in test matrix) is available in the pip-installed version or requires additional setup.
- Performance characteristics compared to other cryptography libraries for specific use cases.
- Availability and completeness of documentation beyond the Google Tink design goals page.
- Specific AEAD key template names and their availability in the Python binding.
Package facts
| License | Apache 2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — absl-py, protobuf, bazel-runfiles |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,761,034/month — #3,584 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tink-1.16.1-cp310-cp310-macosx_11_0_universal2.whl; tink-1.16.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; tink-1.16.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; tink-1.16.1-cp310-cp310-win_amd64.whl; tink-1.16.1-cp311-cp311-macosx_11_0_universal2.whl; tink-1.16.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; tink-1.16.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; tink-1.16.1-cp311-cp311-win_amd64.whl; tink-1.16.1-cp312-cp312-macosx_11_0_universal2.whl; tink-1.16.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; tink-1.16.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; tink-1.16.1-cp312-cp312-win_amd64.whl; tink-1.16.1-cp313-cp313-macosx_11_0_universal2.whl; tink-1.16.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; tink-1.16.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; tink-1.16.1-cp313-cp313-win_amd64.whl; tink-1.16.1-cp314-cp314-macosx_11_0_universal2.whl; tink-1.16.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; tink-1.16.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; tink-1.16.1-cp314-cp314-win_amd64.whl
Keywords: tink, cryptography
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
cryptoProvides command-line tools to encrypt and…
permissive · top 5,000 on PyPI
google-cloud-kmsProvides a Python client library for Google…
permissive · top 1,000 on PyPI
cryptographycryptography provides cryptographic recipes and…
permissive · top 100 on PyPI
oscryptooscrypto provides TLS sockets, key generation,…
permissive · top 1,000 on PyPI
miscreantProvides misuse-resistant authenticated…
permissive · top 5,000 on PyPI
aws-encryption-sdkEncrypts and decrypts data using AWS KMS keys…
permissive · top 5,000 on PyPI
securesystemslibSecuresystemslib provides a cryptography…
permissive · top 5,000 on PyPI
cursiveCursive validates digital signatures using…
permissive · top 15,000 on PyPI
tacacs_plusA TACACS+ client library and command-line tool…
permissive · top 15,000 on PyPI
libthumborlibthumbor generates encrypted URLs for the…
permissive · top 15,000 on PyPI