skillfed

async-tiff

async-tiff v0.7.2 82.3K downloads/30d#14,171 on PyPI
License unclear Active released

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-tiff

uv

uv add async-tiff

poetry

poetry add async-tiff

Installing 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

Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: Rust

Tags

async tiff reader pythoncloud geotiff readers3 tiff tile fetchingasync geospatial imagerylow-level tiff parsingremote tiff decodinggeospatial raster async
geospatialasync-iorust-binding

More Information Analysis packages