async-tiff
What it is and what it does
Async-tiff is a Python binding to a Rust library that reads TIFF files asynchronously, designed for efficient access to cloud-hosted geospatial imagery. It provides low-level tile fetching and decoding, allowing you to read individual tiles from large TIFF files without loading the entire file into memory. The package integrates with cloud storage backends (S3 shown in examples) and exposes TIFF metadata like image format, sample depth, and georeferencing information through IFD (Image File Directory) objects.
The package is built on Rust for performance and compiled to native wheels for CPython 3.10+ and PyPy 3.11. It depends on obspec for storage abstraction. Typical workflows involve opening a remote TIFF file, inspecting its metadata (georeferencing, sample format, bit depth), fetching specific tiles asynchronously, decoding them to arrays, and converting to NumPy for downstream processing or visualization.
Use it for:
- Fetch and decode individual tiles from NAIP or Sentinel-2 imagery hosted on S3 without downloading the full file.
- Read georeferencing metadata (EPSG codes, projections) from cloud-hosted GeoTIFF files.
- Build tile-based image processing pipelines that decode only the regions of interest from large remote rasters.
- Integrate async TIFF reading into geospatial data pipelines alongside rasterio or other GIS libraries.
- Inspect TIFF structure and sample format before committing to full-file operations.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Async-tiff is a low-level, high-performance TIFF reader for Python that fetches and decodes tiles from TIFF files asynchronously, particularly suited for cloud-hosted geospatial imagery.
Yes, if you need to read tiles from cloud-hosted TIFF files asynchronously and can work with Python 3.10+. The package is actively maintained, has no known vulnerabilities, and offers a low-level async interface suited for geospatial workflows. However, verify the license terms first (currently unclear in metadata) and confirm that S3 or your storage backend is supported.
Install
async-tiff on PyPI
pip
pip install async-tiffuv
uv add async-tiffpoetry
poetry add async-tiffInstalling async-tiff
Before you install
Medium install friction due to compiled Rust bindings; wheels are pre-built for CPython 3.10+ and PyPy 3.11 across major platforms (macOS, Linux, Windows). Maintenance status is active with a recent release.
License in practice
License treatment is unclear—no SPDX identifier or raw license text is available in the package metadata. Verify the actual license terms before use in proprietary or restricted contexts.
Quickstart
from async_tiff import TIFF
from async_tiff.store import S3Store
store = S3Store("bucket-name", region="us-west-2")
tiff = await TIFF.open("path/to/file.tif", store=store)
tile = await tiff.fetch_tile(0, 0, 0)
array = await tile.decode()
Requires Python 3.10 or later; async context (event loop) must be running; S3 credentials or alternative store backend needed for remote files.
Verify before relying
- Whether the package supports stores other than S3 (e.g., HTTP, GCS, local filesystem).
- Performance characteristics and typical tile sizes handled efficiently.
- Compatibility with the higher-level async-geotiff wrapper mentioned in the description.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — obspec |
| Maintenance | actively maintained — 100 days since the last release |
| First released | |
| Downloads | 82,289/month — #14,171 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: async_tiff-0.7.2-cp310-cp310-macosx_10_12_x86_64.whl; async_tiff-0.7.2-cp310-cp310-macosx_11_0_arm64.whl; async_tiff-0.7.2-cp310-cp310-manylinux_2_28_aarch64.whl; async_tiff-0.7.2-cp310-cp310-manylinux_2_28_i686.whl; async_tiff-0.7.2-cp310-cp310-manylinux_2_28_x86_64.whl; async_tiff-0.7.2-cp310-cp310-musllinux_1_2_i686.whl; async_tiff-0.7.2-cp310-cp310-musllinux_1_2_x86_64.whl; async_tiff-0.7.2-cp310-cp310-win_amd64.whl; async_tiff-0.7.2-cp311-abi3-macosx_10_12_x86_64.whl; async_tiff-0.7.2-cp311-abi3-macosx_11_0_arm64.whl; async_tiff-0.7.2-cp311-abi3-manylinux_2_28_aarch64.whl; async_tiff-0.7.2-cp311-abi3-manylinux_2_28_i686.whl; async_tiff-0.7.2-cp311-abi3-manylinux_2_28_x86_64.whl; async_tiff-0.7.2-cp311-abi3-musllinux_1_2_i686.whl; async_tiff-0.7.2-cp311-abi3-musllinux_1_2_x86_64.whl; async_tiff-0.7.2-cp311-abi3-win_amd64.whl; async_tiff-0.7.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl; async_tiff-0.7.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl; async_tiff-0.7.2-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl; async_tiff-0.7.2-pp311-pypy311_pp73-manylinux_2_28_i686.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
rio-tilerrio-tiler reads raster data from local and…
permissive · top 15,000 on PyPI
large-imageLarge Image provides Python methods to…
permissive · top 15,000 on PyPI
titiler-coreProvides FastAPI-based building blocks to…
permissive · top 15,000 on PyPI
titiler-applicationProvides a ready-to-run FastAPI application for…
permissive · top 15,000 on PyPI
tifffileRead and write TIFF files and TIFF-like formats…
permissive · top 1,000 on PyPI
pystac-clientPySTAC Client is a Python library for querying…
permissive · top 15,000 on PyPI
rasterioRasterio reads and writes geospatial raster…
permissive · top 5,000 on PyPI
rio-cogeorio-cogeo creates and validates Cloud Optimized…
permissive · top 15,000 on PyPI
pystacPySTAC is a Python library for reading,…
permissive · top 5,000 on PyPI
fastexcelReads Excel files (.xlsx, .xls) into Python…
permissive · top 5,000 on PyPI