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 sourcess3: S3-compatible storage backendtile_cache: LRU cache for decompressed tilesraster: 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