NEWS


rustycogs 0.1.0

Initial release. TIFF/COG metadata scanning and tile decoding from R via Rust, without GDAL or Python.

Core functions

Reference store output

Rust stack

Built on async-tiff 0.2 (Development Seed) and object_store 0.13 (Apache arrow-rs) via extendr 0.7. Async I/O is handled by tokio, with a runtime created per call. All cloud credential resolution follows object_store conventions (environment variables, instance profiles, anonymous access via anon = TRUE).

Supported formats

Tiled TIFF and COG files. Strip-based IFDs are skipped (no tile offsets). All standard COG compression methods are supported: deflate, JPEG, LZW, zstd, uncompressed. Data types: uint8, uint16, uint32, uint64, int8, int16, int32, int64, float32, float64.

GeoTIFF metadata

EPSG codes are extracted from GeoTIFF key directory, trying ProjectedCSType first and falling back to GeographicType. Files without GeoTIFF keys return NA for crs_epsg.

Performance

Metadata scanning is network-bound (2–3 HTTP range requests per COG). A 19,000-tile file scans in ~0.4 seconds. Single tile decode runs at ~0.5 seconds including connection setup; batched tiles amortize the setup cost to ~20ms per additional tile. Comparable to or faster than GDAL /vsicurl/ for equivalent operations.

Known limitations