Crate geocog

Crate geocog 

Source
Expand description

§geocog - Pure Rust COG (Cloud Optimized GeoTIFF) Reader

A high-performance library for reading Cloud Optimized GeoTIFFs without GDAL.

§Features

  • Metadata-only initialization: Reads only IFD headers (~16KB) on open
  • Range requests: Efficient partial reads from local files, HTTP, or S3
  • Streaming: Never loads entire file into memory
  • Compression: Supports DEFLATE, LZW, ZSTD, and uncompressed
  • Overviews: Automatic pyramid level selection with data density validation
  • Coordinate transforms: Built-in proj support for CRS transformations

§Example

use geocog::CogReader;

let reader = CogReader::open("path/to/file.tif")?;
let tile_data = reader.read_tile(10, 512, 384)?;

§Architecture

The library is organized into several modules:

  • cog_reader: Core COG metadata parsing and tile reading
  • [cog]: High-level processing pipeline with caching
  • range_reader: Abstraction for reading byte ranges from various sources
  • s3: S3-compatible storage backend
  • tile_cache: LRU cache for decompressed tiles
  • raster: Raster data abstraction trait

Re-exports§

pub use cog_reader::CogReader;
pub use cog_reader::CogMetadata;
pub use cog_reader::CogDataType;
pub use cog_reader::Compression;
pub use cog_reader::GeoTransform;
pub use cog_reader::OverviewMetadata;
pub use range_reader::RangeReader;
pub use raster::RasterSource;
pub use s3::S3Config;
pub use s3::S3RangeReaderAsync;
pub use s3::S3RangeReaderSync;
pub use tile_cache::TileCache;

Modules§

cog_reader
Pure Rust COG (Cloud Optimized GeoTIFF) reader
geometry
lzw_fallback
Fallback LZW TIFF reader that streams tiles on demand.
range_reader
Range-based reader interface for COG files
raster
s3
S3 Range Reader implementation using object_store
tiff_chunked
tiff_utils
tile_cache