titiler-core
A modern dynamic tile server built on top of FastAPI and Rasterio/GDAL.
What it is and what it does
titiler.core is a FastAPI framework for building dynamic tile servers that serve raster geospatial data on demand. It abstracts away the complexity of tile generation, coordinate transformation, and OGC standards compliance, letting you spin up a tile server by instantiating a TilerFactory and registering its router to your FastAPI app. The package wraps rasterio and GDAL for raster I/O and includes factories for Cloud Optimized GeoTIFF (COG) endpoints, response models aligned with Mapbox TileJSON and OGC standards, and middleware for common geospatial server concerns.
The core dependencies are fastapi, starlette, rasterio, rio-tiler, pydantic, and morecantile—a stack designed for efficient tile serving. It ships with algorithm abstractions for elevation data and band indexing, Jinja2 templates for map viewers and WMTS documents, and telemetry hooks for OpenTelemetry tracing. The package is actively maintained, supports Python 3.11 through 3.14, and carries no known security vulnerabilities.
Use it for:
- Build a COG tile server by instantiating TilerFactory and registering its router, then serve Cloud Optimized GeoTIFFs over standard tile endpoints.
- Implement custom raster algorithms by subclassing the algorithm base class and plugging them into the factory.
- Serve OGC-compliant WMTS endpoints with auto-generated TileMatrixSet models and XML templates.
- Add telemetry and error handling to a tile service using the built-in middleware and error handler factories.
- Create a map viewer UI by leveraging the included Leaflet-based HTML template and Mapbox TileJSON response models.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides FastAPI-based building blocks to create dynamic tile servers for Cloud Optimized GeoTIFFs and raster data, handling tile generation, OGC standards, and geospatial data serving.
Yes. titiler.core is actively maintained, has no security vulnerabilities, installs with low friction, and provides a well-structured FastAPI framework for geospatial tile serving. It is suitable for production use if you need to serve raster data as tiles and want OGC standards compliance out of the box. The MIT license imposes no restrictions. Install it if you are building a tile server; skip it if you need a ready-made tile service rather than a framework.
Install
titiler-core on PyPI
pip
pip install titiler-coreuv
uv add titiler-corepoetry
poetry add titiler-coreInstalling titiler-core
Before you install
Low friction install with a pure-Python wheel. Actively maintained as of 16 days ago with recent commits and a stable repository. Requires Python 3.11 or later.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the license notice.
Quickstart
from fastapi import FastAPI
from titiler.core.factory import TilerFactory
app = FastAPI(description="A lightweight Cloud Optimized GeoTIFF tile server")
cog = TilerFactory()
app.include_router(cog.router, tags=["Cloud Optimized GeoTIFF"])
Requires Python 3.11 or later; rasterio and GDAL dependencies may require system libraries on some platforms.
Verify before relying
- Whether the package handles MosaicJSON and STAC data sources as mentioned in keywords, and what the API surface looks like for those use cases.
- Performance characteristics and scalability limits for concurrent tile requests or large raster datasets.
- Whether OpenTelemetry tracing (mentioned in module structure) is enabled by default or requires configuration.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — fastapi, geojson-pydantic, jinja2, morecantile, numpy, pydantic, rasterio, rio-tiler, simplejson, starlette |
| Maintenance | actively maintained — 16 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 168,459/month — #10,448 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: titiler_core-2.2.1-py3-none-any.whl
Keywords: COG, Dynamic tile server, Fastapi, GDAL, MosaicJSON, OGC, Rasterio, STAC
Tags
More GIS packages
Shapely provides Python tools for creating,…
permissive · top 1,000 on PyPI
pyprojpyproj provides a Python interface to PROJ,…
permissive · top 1,000 on PyPI
geopandasGeoPandas extends pandas DataFrames to handle…
permissive · top 1,000 on PyPI
geopygeopy is a Python client for geocoding and…
permissive · top 5,000 on PyPI
pyogrioPyogrio provides fast, bulk-oriented read and…
permissive · top 5,000 on PyPI
h3h3 provides Python bindings to Uber's H3…
permissive · top 5,000 on PyPI
titiler-applicationProvides a ready-to-run FastAPI application for…
permissive · top 15,000 on PyPI
titiler-extensionsProvides pluggable extension classes for…
permissive · top 15,000 on PyPI
async-tiffAsync-tiff is a low-level, high-performance…
unclear · top 15,000 on PyPI
titiler-mosaicAdds MosaicJSON support to TiTiler, enabling…
permissive · top 15,000 on PyPI
rio-cogeorio-cogeo creates and validates Cloud Optimized…
permissive · top 15,000 on PyPI
cogeo-mosaicCreates and manages mosaics of Cloud Optimized…
permissive · top 15,000 on PyPI
rio-tilerrio-tiler reads raster data from local and…
permissive · top 15,000 on PyPI
morecantileConstruct and work with map tile grids…
permissive · top 15,000 on PyPI
large-imageLarge Image provides Python methods to…
permissive · top 15,000 on PyPI
rasterioRasterio reads and writes geospatial raster…
permissive · top 5,000 on PyPI