async-tiff
An async, low-level TIFF reader for Rust and Python.
- Rust documentation
- Python documentation
- For a higher-level Python API to read GeoTIFF files, see
async-geotiff.
- For a higher-level Python API to read GeoTIFF files, see
Features
- Async, read-only support for tiled TIFF images.
- Read directly from object storage providers, via the
object_storecrate. - Separation of concerns between data reading and decoding so that IO-bound and CPU-bound tasks can be scheduled appropriately.
- Support for user-defined decompression algorithms.
- Tile request merging and concurrency.
- Integration with the
ndarraycrate for easy manipulation of decoded image data. - Support for GeoTIFF tag metadata.
- Supported compressions:
- Deflate, LERC, LERC+Deflate, LERC+ZSTD, LZMA, LZW, JPEG, JPEG2000, WebP, ZSTD
- Support for user-defined decompression algorithms.
Example
# block_on
Background
The existing tiff crate is great, but only supports synchronous reading of TIFF files. Furthermore, due to low maintenance bandwidth it is not designed for extensibility (see #250).
This crate was initially forked from the tiff crate, and still maintains some of its TIFF tag parsing code.