Skip to content

developmentseed/titiler

Repository files navigation

A modern dynamic tile server built on top of FastAPI and Rasterio/GDAL.

Test Coverage Package version Downloads Downloads Docker


Documentation: https://devseed.com/titiler/

Source Code: https://github.com/developmentseed/titiler


TiTiler, pronounced tee-tiler (ti is the diminutive version of the french petit which means small), is a set of python modules that focus on creating FastAPI application for dynamic tiling.

Note: This project is the descendant of cogeo-tiler and cogeo-mosaic-tiler.

Features

  • Built on top of FastAPI
  • Cloud Optimized GeoTIFF support
  • SpatioTemporal Asset Catalog support
  • Multiple projections support (see TileMatrixSets) via morecantile.
  • Multi-Dimensional (Zarr) dataset support via Xarray
  • JPEG / JP2 / PNG / WEBP / GTIFF / NumpyTile output format support
  • OGC RESTful WMTS / OGC Tiles API support
  • Partial support of OGC Maps API
  • Automatic OpenAPI documentation (FastAPI builtin)
  • Virtual mosaic support (via MosaicJSON)
  • Example of AWS Lambda / ECS deployment (via CDK) / K8s Helm chart

Packages

Starting with version 0.3.0, the TiTiler python module has been split into a set of python namespace packages: titiler.{package}.

Package Version Description
titiler.core titiler.core The Core package contains libraries to help create a dynamic tiler for COG and STAC
titiler.xarray titiler.xarray The xarray package contains libraries to help create a dynamic tiler for Zarr/NetCDF datasets
titiler.extensions titiler.extensions TiTiler's extensions package. Contains extensions for Tiler Factories.
titiler.mosaic titiler.mosaic The mosaic package contains libraries to help create a dynamic tiler for MosaicJSON (adds cogeo-mosaic requirement)
titiler.application titiler.application TiTiler's demo package. Contains a FastAPI application with full support of COG, Zarr, STAC and MosaicJSON

Installation

Warning

Do not install the package named titiler from PyPI. In late 2025, we dropped support for this metapackage; now you must install TiTiler from the package names shown below.

To install from PyPI and run:

# Make sure you have pip up to date
python -m pip install -U pip

python -m pip  install titiler.{package}
# e.g.,
# python -m pip  install titiler.core
# python -m pip  install titiler.xarray
# python -m pip  install titiler.extensions
# python -m pip  install titiler.mosaic
# python -m pip  install titiler.application (also installs core, extensions, xarray and mosaic)

# Install uvicorn to run the FastAPI application locally
python -m pip install uvicorn

# Launch application locally
uvicorn titiler.application.main:app

To install from sources and run for development:

git clone https://github.com/developmentseed/titiler.git
cd titiler

uv sync --group server
uv run uvicorn titiler.application.main:app --reload

Docker

Ready to use/deploy images can be found on Github registry.

docker run \
    --platform=linux/amd64 \
    -p 8000:8000 \
    --rm -it ghcr.io/developmentseed/titiler:latest \
    uvicorn titiler.application.main:app --host 0.0.0.0 --port 8000 --workers 1
  • Built the docker locally
git clone https://github.com/developmentseed/titiler.git
cd titiler

docker compose up --build titiler

Project structure

src/titiler/                     - titiler modules.
 ├── application/                - Titiler's `Application` package
 ├── extensions/                 - Titiler's `Extensions` package
 ├── xarray/                     - Titiler's `Xarray` package
 ├── core/                       - Titiler's `Core` package
 └── mosaic/                     - Titiler's `Mosaic` package

Contribution & Development

See CONTRIBUTING.md

License

See LICENSE

Authors

Created by Development Seed

See contributors for a listing of individual contributors.

Changes

See CHANGES.md.